免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5282 | 回复: 11
打印 上一主题 下一主题

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張". [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-23 09:17 |只看该作者 |倒序浏览
我在绘图区(drawarea)上用以下三个函数可以实现GB2312汉字的显示

gdk_draw_text
gdk_draw_string
gdk_draw_text_wc

但GBK汉字显示不了,为什么?

我Load的字体是GBK字体.

求救啊!

论坛徽章:
0
2 [报告]
发表于 2005-08-23 10:30 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

只要在gtk_init前加入對語言的支援就可以了...

  1. gtk_set_local();
  2. gtk_rc_add_default_file("./gtkrc.zh");
  3. gtk_init (&argc, &argv);
复制代码

论坛徽章:
0
3 [报告]
发表于 2005-08-23 10:32 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

请教,这样的话如果使用gettext不会冲突吧?

论坛徽章:
0
4 [报告]
发表于 2005-08-23 11:13 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

若果要使用gettext, 那要在程序前定義gettext函數.
#define _(string)        gettext(string)
#define N_(string)        string

還要加入locale支援的二個函數:
bindtextdomain();
textdomain();
當然locale 都要一同設定. gtk對中文的支援很好, 通常有二個方法去做,
1/ 把預設的loacle設定在程序內, 而不加入gettext功能, 直接顯示中文.
2/ 只加入loacle函數, 再加入gettext功能, 用gettext做出真正i18n的程序.

我二個方法都有用, 看環境, 簡單的程序可用1/就可以. 免得要把gettext的中文化檔呢!? 大的程序就必用2不可了....

论坛徽章:
0
5 [报告]
发表于 2005-08-23 14:29 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

按照大侠的方法,程序中加入gtk_rc_add_default_file("./gtkrc.zh";
问题没解决!并且,我在整个机器中也没有搜索到gtkrc.zh


第二个方法我不懂,可能还需要学习。gettext没用过!
如果第一个方法不行,那我就得学习gettext了!


谢谢大侠们!
希望再次得到指点!

论坛徽章:
0
6 [报告]
发表于 2005-08-23 14:46 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

论坛徽章:
0
7 [报告]
发表于 2005-08-23 14:56 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

對, 在google找些例子看, 在google內二隻方法的使用都有

论坛徽章:
0
8 [报告]
发表于 2005-08-23 16:47 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

Text / Entry 构件的中文输入没有问题,包括繁写的”張“,GB2312 BGK汉字都可以选字和显示,因为,在这两个构件中,汉字的显示是系统集成好的。


现在的关健是,在画本(绘图区drawarea)上从输入法选字区选择”張 ”后上不去。

是不是对GBK汉字(非GB2312)不能用
gdk_draw_text
gdk_draw_string
gdk_draw_text_wc
这三个函数,而是用其他的函数显示!

论坛徽章:
0
9 [报告]
发表于 2005-08-23 16:52 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

試試用gtk-demo, 它有gtk的原代碼可作參考, 只要在代碼內加入gettext就可以變成中文示了, 或者可以把程序變為unicode, 那無論繁體簡單也一樣可以顯示了, 我記得在gtk-demo內有一例子, 我還沒用過你所說的這三個函數. 原諒並不能幫得上忙.

论坛徽章:
0
10 [报告]
发表于 2005-08-23 16:56 |只看该作者

求救啊! !! GTK编程,绘图区上怎么显示GBK汉字,如"張".

>;>;或者可以把程序變為unicode

这句是不对的哦。Unicode编码的字符回避不了'\0'的出现,而C/C++程序以'\0'来作为识别字串结束的标志,所以C/C++源程序绝不可能用Unicode编码,否则无法正确编译。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP