现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

qt显示中文乱码的解决

2015-01-10 06:17 工业·编程 ⁄ 共 538字 ⁄ 字号 暂无评论

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

QTextcodec类提供了文本编码的转换功能。QTextCodec类中的静态函数setCodecForTr(),用来设置QObject::tr()函数所要使用的字符集,tr()函数可以使用指定的字符集来对文本编码进行转换。这里使用了QTextCodec::codecForLocale(),它返回了系统指定的字符集。当然也可以自己指定字符集,比如使用“GB18030”,则可以写成:

QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030));

需要说明的是,setCodecForTr()函数最好的放置位置就是像程序中这样,放在main()函数中的QApplication对象下面。Qt程序中所有要显示到界面上的字符串最好都使用tr()函数括起来,需对于不是要显示到界面上的字符串中如果包含了中文,可以使用QString()进行编码转换,这需要在主函数中添加如下代码进行设置:

QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

给我留言

留言无头像?