最近开始学习在vc下写GTK+方面的程序,因为不知道GTK+下中文的显示方式,调了两个多小时也不能显示出中文。我的源代码如下所示
box=gtk_vbox_new(FALSE,0);/*创建组装盒*/
toolbar=gtk_toolbar_new();/*创建工具条*/
gtk_box_pack_start(GTK_BOX(box),toolbar,FALSE,TRUE,5);/*把工具条加入组装盒*/
image=gtk_image_new_from_file("1.BMP");/*创建图片构件,大家可以把参数改为自己的图片文件名*/
gtk_toolbar_append_item(GTK_TOOLBAR(toolbar),"你好","你好",NULL,image,G_CALLBACK(ButtonEvent),"你好");/*创建工具条里的按钮*/
这条代码的目的就是创建工具条里的按钮,但是每当运行的时候该显示汉字的部分总是乱码,后来才知道GTK+不是不支持中文,而是必须使用UTF-8的编码来显示中文。下面我们来介绍一个函数:
g_locale_to_utf8()
这个函数是GTK将系统默认编码转换成UTF-8的一个函数。因此我把上面的代码进行了如下改进就ok了。
gtk_toolbar_append_item(GTK_TOOLBAR(toolbar),g_locale_to_utf8("你好",-1,0,0,0),g_locale_to_utf8("你好",-1,0,0,0),NULL,image,G_CALLBACK(ButtonEvent),g_locale_to_utf8("你好",-1,0,0,0));