Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
之前Qt4写的代码用QTextCodec::codecForTr()来解决中文输入问题,在Qt5中取消了这个方法,请问Qt5中是怎么解决这个股问题的
QTextCodec::setCodecForTr(QTextCodec::codecForLocale()) 用这个试试.放在main函数里面.
QTextCodec::setCodecForTr(QTextCodec::codecForLocale()) 在Qt4里面我就是这么解决的,在Qt5里面没有setCodecForTr这个成员函数了
只要你的源代码编码是utf-8就没问题,你可以直接用: QString = "你好"; Qt5取消QTextCodec::setCodecForTr可能是因为它被滥用了。
Qt5 取消了QTextCodec::setCodecForTr()和QTextCodec::setCodecForCString()这两个函数。
直接将 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8")) 至于QApplication实例之前即可解决;
[quote author="kenier" date="1363524790"]只要你的源代码编码是utf-8就没问题,你可以直接用: QString = "你好"; Qt5取消QObject::tr可能是因为它被滥用了。[/quote]
怎么可能,我用tr好好的。 目前中文问题我统统生成一个ts文件,再用应用程序载入qm文件解决。
如果使用Qt Creator的话,检查源文件是否是不带BOM的utf8文件,如果不是,那就显示的是乱码.
Qt5中,对于QString常量,建议使用QStringLiteral宏。 QString s = QStringLiteral("你好");
如果使用msvc2005/2008/2010,那么需要将包含中文的源文件保存为带BOM的UTF8格式,并且使用QStringLiteral;如果要处理本地文件路径,那么需要使用QFile::encodeName和QFile::decodeName
参考:http://blog.csdn.net/dbzhang800/article/details/7325698