Qml动态语言切换

在这里插入图片描述
首先在工程文件.pro中加入TRANSLATIONS = zh_CN.ts en_US.ts
两个翻译文件, 支持中英文两种语言切换
接下来用Qt的Linguist分别打开和编辑ts文件

通过全局类来加载:

void QmlLanguage::setLanguage(int nLanguage)
{
    QTranslator translator;
    if (nLanguage == 0)
    {
        translator.load(":/en_US.qm");
    }else{
        translator.load(":/zh_CN.qm");
    }
    m_app->installTranslator(&translator);
    m_engine->retranslate();
}

重点的是这句 m_engine->retranslate();但是只在5.10版本以上可以使用,
5.10一下没有这个接口
所以我们另觅他法:
通过信号来使得5.10以下版本都可以实现动态切换
emit languageChanged();

QQ:609162385 作者:https://blog.csdn.net/cqltbe131421

猜你喜欢

转载自blog.csdn.net/cqltbe131421/article/details/87718372