当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 如何在Gtk+2.0下显示中文
帖子发表于 : 2010-11-18 9:43 
头像

注册: 2009-10-04 21:49
帖子: 34
送出感谢: 0 次
接收感谢: 0 次
我编写了一个基于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;
}


_________________
母鸡呀...
QQ:380153398
GTalk:cjj380153398@谷歌邮箱
MSN:chenjunjia1989@hotmail邮箱
个人网站:http://www.stcjj.tk


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 如何在Gtk+2.0下显示中文
帖子发表于 : 2010-11-19 18:53 
头像

注册: 2008-02-11 15:46
帖子: 450
送出感谢: 0 次
接收感谢: 0 次
ubuntu 10.10系统(中文)没有问题,有图为证!
http://paste.ubuntu.org.cn/81431
http://paste.ubuntu.org.cn/i81431


_________________
Google Talk群组,请来<雨云>一番!
主题:UbuntuLinux编程科幻、民主、科学等。
添加 rain-cloud@appspot.com 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH

Twitter:http://twitter.com/nixzhu


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译