在main()中,设置QApplication的到缺省编码方式。
如:
QApplication app(argc,argv);
app.setDefaultCodec(QTextCodec::codecForName("GBK"));
或则
QTextCodec::setCodecForLocale( QTextCodec::codecForName("GBK"));
然后设置tr的编码方式.
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
具体的使用:
const char* pcszStr = "中文化";
QString s = trUtf8(pcszStr); //1
或则
QString s = QString::fromLocal8Bit(pcszStr); //2
上面的1和2,有时1能正常显示,有时2能正常显示。至于为什么会这样,因为我也是初学Qt,所以也正在研究答案。等找到答案以后在贴出来。
利用linguist:
1、QT->create new translation file 生成.ts文件
2、用linguist打开.ts文件,将要翻译的英文或其他语言翻译成目标语言(源代码中tr内的语言翻译成要在界面显示的语言)
3、发布(release)qm文件。
4、在main中,界面显示之前添加如下代码:QTranslator translator;
translator.load("hello");//hello为生成的qm文件名
a.installTranslator(&translator);