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

<< 自言自语 -- GTK+ 编程[1] -- 关于中文显示 >>

    来源: 互联网  发布时间:2015-03-02

    本文导语:  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 问:论坛中有人说 GTK+ 并不支持中文,是这样吗? 问:为什么在控件上的汉字无法显示,并伴有如下错误警告? 问:为什么在屏幕上输出的汉字变成了乱码? 问:在...



>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

问:论坛中有人说 GTK+ 并不支持中文,是这样吗?
问:为什么在控件上的汉字无法显示,并伴有如下错误警告?
问:为什么在屏幕上输出的汉字变成了乱码?
问:在修改控件字体的第一步就发生了错误,为什么 gdk_font_load() 总是失败?
问:我不想使用宋体,怎样获得其它字体的代号?
问:你为什么没有说到 gettext() 及相关国际化标准?

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

问:
    论坛中有人说 GTK+ 并不支持中文,是这样吗?
-----------------------------------------------------------
答:
    GTK+ 采用 UTF-8 编码就是为了支持多字节文字,所以GTK+
肯定支持中文,而且非常出色,你可以看到网上使用 GTK+ 编写
的中文软件数不胜数,所以没必要理会那种说法。
    ( 我真的看过这类的帖子,误人子弟...呵呵... )

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

问:
    为什么在控件上的汉字无法显示,并伴有如下错误警告:
"** (:1864): WARNING **: Invalid UTF8 string passed to
pango_layout_set_text()"
-----------------------------------------------------------
答:
    GTK+ 中的字符串均采用 UTF-8 格式编码,这个提示就是告
诉您,程序中的字符串编码格式不是 UTF-8,通常这是由编辑器
造成的,例如在我的 VC7 中,默认的存档编码格式为 GB2312。
    但是,除了将文件以 UTF-8编码格式存档外,你还可以使用
glib 的转换函数在程序的运行过程中将字符串转换为 UTF-8。
    例如: 将
    button = gtk_button_new_with_label( "确定" );
           改成
    button = gtk_button_new_with_label(
               g_locale_to_utf8("确定",4,NULL,NULL,NULL));

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

问:
    为什么在屏幕上输出的汉字变成了乱码?
-----------------------------------------------------------
答:
    既然可以显示乱码,就表明与编码格式无关。
    您可能已经想到了 --- 对,问题就出在字体上。
    一般情况下,系统会用"Sans"作为默认字体,但这种字体中
只包含了 ASCII 码,所以汉字是无法显示的。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

问:
    在修改控件字体的第一步就发生了错误,gdk_font_load()
总是失败,为什么?
-----------------------------------------------------------
答:
    首先向您提供一些建议:
  1.不要用 GDK 的一些函数更改字体,因为那是 GTK+的不稳定
因素之一(至少在2.0以下版本中是这样的)。
  2.为了获得更多的字体,应该避免使用 GdkFont类型,及相关
函数,取而代之的是 Pango 库,这是 GTK+ 的一部分。
  3.GdkFont 只能使用 XFont 字体,而且使用方法相对复杂,
PangoFontDescription 可以使用 XFont,以及一些本地字体,
包括 Win Font, XRender Font, TrueType Font,所以您没有必
要再留恋 GdkFont 了。
  4.您不需要修改所有控件,更简便的方法是在主窗口创建后立
即修改它的字体,将来创建的控件会继承它的这项属性。
    例如:
    window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    {
        GtkStyle  *style = gtk_rc_get_style( window );
        pango_font_description_set_family(
                         style->font_desc, "Stsong" );
        gtk_widget_set_style( window, style );
    }
    ( 这三句代码是将程序的字体设置为 "华文宋体" )

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

问:
    我不想使用宋体,怎样获得其它字体的代号?
-----------------------------------------------------------
答:
    部分字体的代号和它的文件名是相同的,例如黑体的代码为
"Simhei",华文宋体为"Stsong"。
    您还可以通过一些 Linux/Unix 下的编辑软件的字体选择框
来查找字体对应的代码。
    但标准的方法是调用 Pango库中的相应函数来查找机器上已
安装的字体。
    如果想了解更多关于 Pango的高级使用方法,请参考它自带
的 API 开发手册。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

问:
    你为什么没有说到 gettext() 及相关国际化标准?
-----------------------------------------------------------
答:
    目前国内多数程序员采用这个办法汉化程序,所以我没有必
要再多说。但它不一定对每个人都合适,我通常采用自己管理语
言模块的方法实现国际化,这在很多情况下要比 gettext()更方
便。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> 作 者:付强
> 兴 趣:ASM/C/C++/Java/Perl/GTK+/CGI/ISAPI/Linux ...
> Email:youlingbing@163.net
>  OICQ:775341
>--------------------------------------------------------->
>     这些文章其实是我的学习笔记,以 FAQ方式代问自答,希
> 望能帮初学者解决一点实际问题。
>     您可以随意修改或转载本文,但请保证内容的正确性,以
> 免误人子弟 ---  谢谢 :)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

|

呵呵 :)

    
 
 

您可能感兴趣的文章:

  • 谁有< GTK2 Tutorial中文版 >网上给的那个连接下载不了
  • 浙ICP备11055608号-3 iis7站长之家
  • 如何在Solaris下使用GTK开发中文界面
  • 老问题一问, 关于如何在gtk中显示中文
  • 请教Solaris下怎样才能正确显示gtk程序中控件上的中文??
  • gtk+ 中怎么使用中文
  • [分享经验]gtk2中文诡异乱码,原来是源文件格式不是utf-8的,回帖有分,顺序发完为止
  • win32 gtk+ 中文显示
  • gtk2不能显示中文,运行时错误:WARNING **: Invalid UTF8 string passed to pango_layout_set_text
  • GTK编程中文显示的问题
  • gtk2.0 不能直接显示中文?
  • ◆◇◆ ???,GTK+ 编程,中文无法正常显示 ◆◇◆
  • 有什么关于gtk的中文书(可以买到的,在china-pub上很多都缺货)
  • 本人刚学gtk编程,留下油箱,欢迎喜欢gtk编程的朋友和我交流啊!!!!
  • Redhat linux9.0 下Gtk+编程的#include <gtk/gtk.h>问题
  • 我想学习GTK+2.0,请问如何准备GTK编程环境???
  • gtk编程问题,如何在一个线程中向gtk控件发送一个expose_event消息
  • gtk编程中关于gtk_widget_show函数的问题
  • 请教linux下的编程的选择:我听说有gtk+gnome的编程,也有kde里的 什么编程,到底应该选择哪个呢?好象一个是技术好一点,一个是市场占有
  • gtk编程的报错了
  • GTK 界面编程有问题,求解
  • GTK编程问题
  • GTK+编程用什么函数实现窗口的最大化最小化控制?
  • 请推荐一本GTK+编程书籍
  • 一个关于gtk编程问题?
  • gtk编程问题2?
  • gtk编程如何改变创建窗口的大小?
  • 请问各位大虾,用gtk编程如何让图片缩放,旋转?
  • X Window编程Qt,GTK哪个比较好
  • linux下的gtk编程
  • 请问GTK下编程,如何将一个图片设计成一个按钮?谢谢!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • GTK窗口前端显示及GTK窗口闪烁
  • 关于Gtk程序全屏显示的问题,请高手指点一下!!
  • gtk2.0字体不显示的问题
  • Gtk 文字列表显示?
  • GTK 图像控件显示问题
  • 如何通过gtk的函数在程序里获取显示器的分辨率????????
  • 请问,使用GTK如何显示标准的浏览文件夹的对话框?HILDON提供吗?
  • gtk_tree_view_column_new_with_attributes设置的title不显示..
  • gtk文档显示的问题
  • 【GTK】 关于 TreeView -- 如何将一行显示加粗?
  • 请问怎么把result_entry=gtk_entry_new()设置为只能显示,不能输入?
  • 请问在GTK下如何在一个WINDOW的区域内并排显示两个DIALOG?
  • gtk中pixmap的内容怎么部分的显示?
  • 如何用V4L2编程接受电视盒采集到的视频信号,以及如何在GTK中实时显示
  • 一个关于 gtk window 显示的问题,很奇怪
  • Gtk下如何显示bmp图片(帮顶有分)
  • 在看GTK+2.0教程,在菜单构件那一节,我copy的示例程序为什么有个button构件显示不出来?
  • gtk图像显示+滚动条请教
  • 关于gtk的目录问题,我的目录是 gtk-2.0/gtk/gtk.h ??
  • 【重要】gtk+ 编译gtk+的问题,不同于一般gtk的搭建--1000分,问题解决了,开号给分,决不食言!大家都来看看
  • gtk 和 gtk+ 有什么区别?
  • centos5.4中安装gtk时,yum库最新版是gtk2.10,如何更新yum库安装gtk2.12
  • 我使用GTK+2.0写界面程序时,怎么找不到gtk.h文件?
  • GTK+ gtk_tree问题
  • gtk for win 和 gtk for linux 下的程序问题?
  • 用GTK开发的程序如何在没有GTK动态连接库的Linux里运行?
  • 【GTK】GTK中有没有这个widget?
  • [GTK] gtk最小化问题与恢复问题
  • 【gtk+】初学gtk+,请教一个问题
  • 【gtk】关于gtk布局问题
  • 大家好,想知道gtk与gtk+有什么区别?


  • 站内导航:


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

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

    浙ICP备11055608号-3