Qt 加载了qm文件翻译无效的bug的分享
2017-10-13 18:54
1236 查看
假设有如下代码:
QString suffixlang;
if (AL_CHS == mAppLanguage) {
suffixlang = "zh_CN";
}
else {
suffixlang = "en_US";
}
const QString &appdatapath = this->applicationDirPath();
QTranslator mpQtTr;
bool bqtret = mpQtTr.load(appdatapath + "/qt_" + suffixlang);
if (bqtret){
this->installTranslator(&mpQtTr);
}
运行程序之后发现字符并没有翻译。
正确的改法:
QString suffixlang;
if (AL_CHS == mAppLanguage) {
suffixlang = "zh_CN";
}
else {
suffixlang = "en_US";
}
const QString &appdatapath = this->applicationDirPath();
static QTranslator mpQtTr;
bool bqtret = mpQtTr.load(appdatapath + "/qt_" + suffixlang);
if (bqtret){
this->installTranslator(&mpQtTr);
}
也就是说mpQtTr这个对象要一直存在。
QString suffixlang;
if (AL_CHS == mAppLanguage) {
suffixlang = "zh_CN";
}
else {
suffixlang = "en_US";
}
const QString &appdatapath = this->applicationDirPath();
QTranslator mpQtTr;
bool bqtret = mpQtTr.load(appdatapath + "/qt_" + suffixlang);
if (bqtret){
this->installTranslator(&mpQtTr);
}
运行程序之后发现字符并没有翻译。
正确的改法:
QString suffixlang;
if (AL_CHS == mAppLanguage) {
suffixlang = "zh_CN";
}
else {
suffixlang = "en_US";
}
const QString &appdatapath = this->applicationDirPath();
static QTranslator mpQtTr;
bool bqtret = mpQtTr.load(appdatapath + "/qt_" + suffixlang);
if (bqtret){
this->installTranslator(&mpQtTr);
}
也就是说mpQtTr这个对象要一直存在。
相关文章推荐
- qt 加载翻译文件 qm
- Qt加载翻译文件
- 为Qt应用程序加载翻译文件
- QT 添加翻译文件以及加载翻译文件和右键翻译
- qt之加载本地翻译文件
- Qt加载翻译文件(2)
- qt 翻译文件加载(两个)
- Qt 翻译文件的加载
- Qt加载翻译文件
- QT5 添加多个qm翻译文件
- Qt加载翻译文件
- Qt加载翻译文件(2)
- Qt制作翻译文件和加载翻译文件
- VS2010中Qt翻译文件的创建与使用范例
- 【Qt OpenGL教程】24:扩展、剪裁和TGA图像文件的手动加载
- Qt 添加翻译文件,实现中英文界面切换
- QT 动态加载UI文件注意事项
- Qt加载磁盘文件和对文件内容进行过滤
- C/C++中去除字符串中的无效字符,用于加载配置文件
- Resx 文件无效,未能加载 .RESX 文件中使用的类型