您的位置:首页 > 编程语言 > Qt开发

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这个对象要一直存在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 字符翻译