日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > qt化步驟

qt化步驟 時間:2017-11-15      來源:未知

一.代碼編寫注意:

將需要翻譯的字符串用 QObject::tr("Hello world!").  

或者QApplication::translate("Dialog", "Hello world!", 0); 包含

例如:

第一種:

lab = new QLabel(tr("trans_text","text"), this);

tr參數第一個表示翻譯字符(標識),第二個為翻譯提示

 

第二種(一般為UI編輯器方式):

pushButton->setText(QApplication::translate("Widget", "click", 0));

 

二.生成翻譯文件

1.在pro文件中加入關鍵字,例如:

TRANSLATIONS += XXX/en.ts \

                XXX/zh.ts

表示要在XXX目錄生成相應的翻譯文件。

 

2.保存項目后運行:

菜單欄->工具->外部->Qt語言家->lupdate

相當于執行了lupdate *.pro

 

會自動在目錄生成兩個文件:en.ts  zh.ts

 

3.運行linguist工具加載en.ts  zh.ts兩個文件并分別進行相應的翻譯。

每一個翻譯完了按ctrl+ENTER確認下即可。

 

4.翻譯完成后運行:

菜單欄->工具->外部->Qt語言家->release

相當于執行了 lrelease *.pro

會自動在相應目錄生成兩個文件:en.qm  zh.qm

 

三、語言切換

1.在程序啟動時候已經確定,不需要動態切換

//可定義成靜態

QTranslator translator;

translator.load(Global::rootPath+Global::langPath+"zh.qm");

qApp->installTranslator(&translator);  //qApp是全局的變量

 

注意上面語句一定要在頁面實例化之前。

 

2.動態語言切換:每個類重寫LanguageChange事件

void XXX::changeEvent(QEvent *e)

{

    if(e->type()==QEvent::LanguageChange){  //如果是語言事件

        label->setText(tr("trans_we"));  //定義所有需要自動改變的部件

    }else{

QWidget::changeEvent(e);

}

}

 

相應的觸發槽中重新加載語言文件即可,會自動觸發所有對象的changeEvent事件

translator->load("XXX/zh.qm");

qApp->installTranslator(translator);  //qApp是全局的變量

上一篇:mjpg-streamer網絡視頻服務器移植

下一篇:c/c++使用數據庫sqlite3

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 思想认识不到位,重视程度不够| 秀场视频高清完整版| love 电影| 情侣签名一男一女简短| 南方车站的聚会| 王亚楠| 绿门背后| 花月佳期 电影| 朗德海花园场景| 桥梁工程师职称论文| 男女视频在线播放| 2024年爆款头像| 刘德华表里不一| 好男儿之情感护理| 铁血战士电影| 熊出没免费电影| 朱敏荷为艺术贡献的电影| 徐若琪| 新老澳门资料| 抗日电影免费| 毒灰| 古灵精探演员表| 间宫夕贵电影| 极品电影网| 德鲁| 美丽的邂逅| 在线免费污视频| 色戒 在线| 挠tkvk| 林忆莲唱哭李宗盛现场| 刘思维| 破晓东方演员表名单| 不得不爱吉他谱| 成毅壁纸| 欲望之| 超人演员| 卫平| 《推拿》完整版播放| 美女mm免费视频| 抖音音乐| 故乡,别来无恙演员表|