PyGTK TreeView

我编写了一个基于Gtk+2.0的程序,编译之后发现无法显示出汉字。查了网上的方法,说用g_locale_to_utf8("中文",-1,NULL,NULL,NULL),但我试了之后,发现原先的按钮变小了,也没有显示所谓的中文,不明真相,望各位高手出手相教,谢谢。
我用的是Ubuntu 10.04 ,用gedit和vi还有vim编辑器都行。

(第36行,“计算“二字,测试而已,无关语义。)
代码:
#include<gtk/gtk.h>
#include<stdio.h>
#include<string.h>
const char *password="secret";
//以下为两个回调函数
void closeApp(GtkWidget *window,gpointer data){
   gtk_main_quit();
}
void button_clicked(GtkWidget *window,gpointer data){
   const char *password_text=gtk_entry_get_text(GTK_ENTRY((GtkWidget *)data));
   if(strcmp(password_text,password)==0)
      printf("Access granted!\n");
   else
      printf("Access denied!\n");
}
int main(int argc,char *argv[]){
   GtkWidget *window;
   GtkWidget *username_label,*password_label;
   GtkWidget *username_entry,*password_entry;
   GtkWidget *ok_button;
   GtkWidget *hbox1,*hbox2;
   GtkWidget *vbox;
   gtk_init(&argc,&argv);
   window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title(GTK_WINDOW(window),"GTK+Word2NumCalculater");
   gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
   gtk_window_set_default_size(GTK_WINDOW(window),200,200);

//以下为连接回调函数
g_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(closeApp),NULL);
username_label=gtk_label_new("Login:");
password_label=gtk_label_new("Password:");
username_entry=gtk_entry_new();
password_entry=gtk_entry_new();
gtk_entry_set_visibility(GTK_ENTRY(password_entry),FALSE);
ok_button=gtk_button_new_with_label(g_locale_to_utf8("计算",-1,NULL,NULL,NULL));
//以下为连接回调函数
g_signal_connect(GTK_OBJECT(ok_button),"clicked",GTK_SIGNAL_FUNC(button_clicked),password_entry);

//以下为利用vbox和hbox进行界面设计
hbox1=gtk_hbox_new(TRUE,5);
hbox2=gtk_hbox_new(TRUE,5);
vbox=gtk_vbox_new(FALSE,10);
gtk_box_pack_start(GTK_BOX(hbox1),username_label,TRUE,FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox1),username_entry,TRUE,FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox2),password_label,TRUE,FALSE,5);
gtk_box_pack_start(GTK_BOX(hbox2),password_entry,TRUE,FALSE,5);
gtk_box_pack_start(GTK_BOX(vbox),hbox1,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(vbox),hbox2,FALSE,FALSE,5);
gtk_box_pack_start(GTK_BOX(vbox),ok_button,FALSE,FALSE,5);
gtk_container_add(GTK_CONTAINER(window),vbox);
gtk_widget_show_all(window);
   gtk_main();
   return 0;
}

作者: 小鸡啄米   发布时间: 2010-11-18