qt不一樣模塊使用多語言

Qt裝載多個多語言文件,主要有兩種方式:spa

在主程序中裝載,主程序爲A 動態快爲B 爲A 與B 分別生成A.qm  B.am文件,而後在A的主程序一塊兒裝載翻譯

QApplication a(argc, argv);對象

// 定義兩個QTranslator 對象,分別對應不一樣的翻譯文件
QTranslator translator;
QTranslator translatorsys;
// 各自load不一樣的qm文件(qm文件已添加到當前工程的資源中)
translator.load(":/cs.qm");
translatorsys.load(":/qt_zh_CN.qm");
// 分別安裝翻譯文件
a.installTranslator(&translator);
a.installTranslator(&translatorsys);

生命週期

 

第二種是在不一樣模塊中分別裝載。這時候要注意一點,定義的QTranslator要在整個模塊的生存期內都有效,否則只在有效期內的翻譯有效,其餘時候翻譯無效。網上大部分都是定義一個局部變量,而後裝載,局部變量的生命週期結束後,翻譯就無效。資源

 

    QTranslator translator;  設置爲在整個動態庫加載生存週期內都有效的變量
     translator.load(QString(test_zh.qm", ".");
    QCoreApplication::installTranslator(&translator);
qt

相關文章
相關標籤/搜索