QT中文显示解决
2013-05-17 22:26
218 查看
整整耗费了我两天时间呀,此时终于把温泉字体显示出来了,弯路走了不少!
首先说现象:
1 、有显示,显示方块或乱码,不是汉字;
2、没有显示,即白屏
第一种:出现这种现象的原因可能是编码方式有问题
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QFont font("wenquanyi",9);
app.setFont(font);
在XP下,也就是你在XP下输入的汉字,这时codecForName里为GBK,gb18030,gb2312,big5
如果是在linux环境下,大部分都以utf8的方式编码的。
第二种:出现这种现象的原因在于你的字体库安装的是否正确
编译时字库的路径,必须和实际运行时路径一致。而且字库里的文件也要相同
举个例子:我虚拟机上QtEmbedded的字库安装路径是/usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib/fonts
那么在开发板上也应该时上面那个路径。而且字库文件要一直
比如我要显示文泉驿字体,就可到qtopia源文件中的lib/fonts目录拷贝文泉驿字体到上面两个路径中,然后make 编译应用程序,下载到开发板即可运行。我出情况的原因是只拷贝到开发板的路径中,没拷贝字库虚拟机QTE的安装目录,一直无显示。
有时你会发现X11编译的程序,可以正常显示中文。但是用qtopia-core重新编译一次,确显示不了。因为X11有默认的字体,只要设置了正确的utf8的编码方式,不设置字体也可以正常显示(在编码是UTF8的LINUX下)。(我怀疑QT默认的编码方式是Latin1,待验证)。但是,qtopia-core编译的程序,必须明确显示用的字体,和编码方式。
首先说现象:
1 、有显示,显示方块或乱码,不是汉字;
2、没有显示,即白屏
第一种:出现这种现象的原因可能是编码方式有问题
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QFont font("wenquanyi",9);
app.setFont(font);
在XP下,也就是你在XP下输入的汉字,这时codecForName里为GBK,gb18030,gb2312,big5
如果是在linux环境下,大部分都以utf8的方式编码的。
第二种:出现这种现象的原因在于你的字体库安装的是否正确
编译时字库的路径,必须和实际运行时路径一致。而且字库里的文件也要相同
举个例子:我虚拟机上QtEmbedded的字库安装路径是/usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib/fonts
那么在开发板上也应该时上面那个路径。而且字库文件要一直
比如我要显示文泉驿字体,就可到qtopia源文件中的lib/fonts目录拷贝文泉驿字体到上面两个路径中,然后make 编译应用程序,下载到开发板即可运行。我出情况的原因是只拷贝到开发板的路径中,没拷贝字库虚拟机QTE的安装目录,一直无显示。
有时你会发现X11编译的程序,可以正常显示中文。但是用qtopia-core重新编译一次,确显示不了。因为X11有默认的字体,只要设置了正确的utf8的编码方式,不设置字体也可以正常显示(在编码是UTF8的LINUX下)。(我怀疑QT默认的编码方式是Latin1,待验证)。但是,qtopia-core编译的程序,必须明确显示用的字体,和编码方式。
相关文章推荐
- QT中文显示乱码解决
- Linux Qt 解决中文无法显示
- 【Qt开发】解决Qt5.7.0中文显示乱码的问题
- 【Qt】]两种解决Qt5显示中文乱码的方法
- QT中中文显示乱码 解决方法
- QT下中文显示乱码解决办法
- qt在板子上字很小与中文显示的解决方法 .
- Qt中文显示问题解决(转载)
- QT中文显示乱码解决
- QT5中文显示乱码解决方法
- qt编写的android程序在android系统中运行,中文显示乱码的解决方法
- QT中文显示乱码解决
- 解决qt程序在板子上不能正常显示中文的问题
- Qt技巧:中文显示乱码问题解决
- Qt qsqlquerymodel 中文显示乱码问题解决
- 解决 Ubuntu 14.04 下 Qt5 中文显示和中文输入法问题
- Qt中文显示问题解决
- 解决QT中文字符串在osg中显示乱码的问题
- 【Qt】]两种解决Qt5显示中文乱码的方法
- 关于Qt移植后环境变量的设置 qt移植到arm中文显示问题解决 实现pc与tiny210 arm开发板 udp通信