Qt QTranslator 實現多語言轉換


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了,大家注意下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM