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());