1、在*.pro文件里面添加
TRANSLATIONS += English.ts
Chinese.ts
根據自己想要添加多少種語言和什么語言視情況添加。
2、
a、通過qt ui設計師添加的文字
首先記得選上這個按鈕
b、通過代碼添加的文字,需要將需要轉換的文字使用QObject::tr(“…”) 進行標記,否則程序中並不能對其進行識別。
3、生成ts 文件
4、修改ts文件
經過第三步后,會在文件目錄下生成*.ts文件,用qt的Linguist(Qt 語言家)打開修改。
修改自己要轉換的翻譯文本
5、生成qm文件
6、代碼實現
生成完qm文件后
7、多界面實現
因為我們做項目肯定不止一個界面,我們不可能每個界面都去重復這個步驟是吧,所以這里就用到了QEvent,里面有一個QEvent::LanguageChange,當改變語言時就會發送這個信號出來,我們用重寫QEvent里面的void changeEvent(QEvent *e);來實現
virtual void changeEvent(QEvent *);
其他頁面收到這個信號的時候就執行
this->ui->retranslateUi(this);
因為其他頁面雖然收到了語言更改的信號,但是頁面沒有刷新,需要執行這個步驟使他刷新
PS.
博主本人一開始試的時候按照上面步驟6來然后執行7,運行后發現沒有改變,后來把QTranslator m這個放到頭文件里面,並為他new了,再來執行后面的就ok了,大家注意下。