当前位置:  技术问答>linux和unix

gtk2.0 不能直接显示中文?

    来源: 互联网  发布时间:2016-11-20

    本文导语:  我用GTK让它显示中文时,屏幕上出现的是中间带个叉的方框,同时打印这个警告: Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text() 我的测试程序很简单,就是让gtk显示一个button,把button取一中文名。可是...

我用GTK让它显示中文时,屏幕上出现的是中间带个叉的方框,同时打印这个警告:
Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()
我的测试程序很简单,就是让gtk显示一个button,把button取一中文名。可是它的中文名无法显示。
我在网上找,说是编码方式不是UTF-8所以不能显示,用g_locale_to_utf8()函数可以进行转换,可是我加了这个,也不行,结果是连“带个叉的方框”都没有了。这是怎么回事?
请教这个问题如何解决?
PS:1、我要直接显示中文,不是用gettext来翻译的;2、我有在usr/share/fonts/下加中文包(chinese)。
下面是我代码:很简单的测试,就一个组盒框和一个按钮
#include  
gboolean combo_changed(GtkComboBox *comboBox, GtkLabel *label) 
{
gchar *active = gtk_combo_box_get_active_text(comboBox);
gtk_label_set_text(label, active);
return 0;
}
int main(int argc, char *argv[]) 

GtkWidget *window; 
GtkWidget *comboBox; 
GtkWidget *label; 
GtkWidget *button; 
GtkWidget *fixed; 
GtkWidget *vbox; 
gtk_set_locale(); 
gtk_init(&argc, &argv); 
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(window,720,576);
fixed = gtk_fixed_new ();
gtk_container_add (GTK_CONTAINER (window), fixed);
comboBox = gtk_combo_box_new_text();
gtk_combo_box_append_text(GTK_COMBO_BOX(comboBox), "caterpillar");
gtk_combo_box_append_text(GTK_COMBO_BOX(comboBox), "momor");
gtk_combo_box_append_text(GTK_COMBO_BOX(comboBox),"确定");
gtk_combo_box_append_text(GTK_COMBO_BOX(comboBox), "bush");
gtk_combo_box_set_active(GTK_COMBO_BOX(comboBox), 0);
label = gtk_label_new("caterpillar");
vbox = gtk_hbox_new(TRUE, 5);
gtk_box_pack_start(GTK_BOX(vbox), comboBox, TRUE, TRUE, 5); 
gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 5); 
gtk_fixed_put (GTK_FIXED (fixed),vbox, 50, 50);
//gtk_container_add(GTK_CONTAINER(fixed), vbox); 
g_signal_connect(GTK_OBJECT(comboBox), "changed",
G_CALLBACK(combo_changed), label); 
g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); 
button = gtk_button_new_with_label (g_locale_to_utf8("确定",-1,NULL,NULL,NULL));//要翻译的内容Hello World!
gtk_fixed_put (GTK_FIXED (fixed), button, 460, 450);

gtk_widget_show_all(window); gtk_main(); return 0; 


看,我用以上两种方法都不能正确显示中文,
请各位帮帮忙,先谢谢了!

|
你装GTK的时候你的环境变量没设置好。字符集最好设置成GB2312的吧。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • gtk2.0字体不显示的问题
  • centos5.4中安装gtk时,yum库最新版是gtk2.10,如何更新yum库安装gtk2.12
  • lazarus+GTK2的问题
  • Perl 库 Gtk2-Perl
  • 基于 GTK2 的开源飞信 OpenFetion
  • gtk2 支持半透明窗体吗?
  • GTK2.0安装的问题???
  • 急~~~!!!!!!!!!!!!!redhat 8.0和 7.3里面有gtk2.0+吗?怎么安装?如果没有如何安装?
  • GTK2.6.0安装问题
  • 我是新手不知道怎么在linux下怎么安装GTK2,主要是不清楚安装前环境变量应该
  • 使用c gtk2 在linux 下,如何实现下面的问题,找了很久,没有这方面的资料
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • 使用gtk2.0库需要至少使用哪个版本的gcc?
  • gtk2,书中例题出错:2.2节,快捷菜单


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3