1. 程式人生 > 實用技巧 >Qt 多語言轉換

Qt 多語言轉換

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

原文連結:https://www.cnblogs.com/ybqjymy/p/13554737.html