首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt 中文显示有关问题

2012-02-14 
qt 中文显示问题各位大侠,我在windows下写了一个QT程序,拷贝到虚拟机下的ubuntu下重新编译运行,为什么不显

qt 中文显示问题
各位大侠,我在windows下写了一个QT程序,拷贝到虚拟机下的ubuntu下重新编译运行,为什么不显示中文呀?

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); 这个也设置了...

就是显示不出来...

希望各位大侠给指点指点!谢谢!



[解决办法]
Windows下显示中文了吗?要加载翻译文件的
[解决办法]
http://www.qtcn.org/bbs/simple/?t24682.html

http://www.cnblogs.com/cute/archive/2011/07/14/2106650.html
帮楼主搜了2个网页,不知道是否有对LZ帮助!
[解决办法]

探讨

各位大侠,我虚拟机中的ubuntu是英文版的,不显示中文是不是跟这个有关系呀?

[解决办法]
会不会是字体问题?qt自带的unifont可以显示中文,把字体设成这个看看。
[解决办法]
我遇到过。我是linux下英文系统,QCreator中输入的中文默认是Utf8。改一个编码显示不了,后来三个全改,就可以了。

QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gbk"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("gbk"));

改成你要显示的中文编码。
[解决办法]
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
全改成这个试试。。
[解决办法]
QTextCodec * sys = QTextCodec::codecForName("System");
QTextCodec::setCodecForCStrings(sys);
QTextCodec::setCodecForLocale(sys);
QTextCodec::setCodecForTr(sys);
试试这个呢?
[解决办法]
我遇到“小框框“都是由于字体问题,看看linux下Qt的lib/fonts里面都是些啥字体,能显示中文吗?
[解决办法]
我的Linux系统也是装的英文的,后来我把语言选择chinese之后重启,显示的也是虚线+方格。
LZ的这个问题有没有解决呢?
我猜想,这样系统都不支持中文显示,那么在Qt中的程序里改写程序控制语言的显示,是不是有
些本末倒置了呢?
[解决办法]
先把你UBUNTU里面的语言支持中文再说!
最好在QT的开发工具qtcreator里面把语言设置成GB2312
然后再main.cpp里面

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));……
[解决办法]
看下代码文件的字符编码是不是gbk,不行的话自己检测下文件的字符编码是什么,我也遇到过这个问题是字符编码的问题
QTextCodec *codec = QTextCodec::codecForName("gbk");
QTextCodec::setCodecForTr(codec);
[解决办法]
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));

这样就可以了
[解决办法]
trUtf8("你好")
这样不行吗?

热点排行