Qt學習筆記 多語言檔案 qm的生成和使用

2021-09-22 07:52:23 字數 2290 閱讀 7895

系統:windows10 64位 家庭版

qt版本:5.6.0 msvc2013 32位

編譯器:visual studio 2013 專業版

在qt程式中生成多語言處理所必需的.qm檔案,然後新增到工程中並在程式中使用。

1.新建乙個qt widgets工程,這裡我取名為linguist,並新增乙個名為linguistwidget的類,如下圖所示:

linguistwidget.**件

#ifndef linguistwidget_h

#define linguistwidget_h

#include class qpushbutton;

class linguistwidget : public qwidget

;#endif // linguistwidget_h

linguistwidget.cpp檔案

#include "linguistwidget.h"

#include linguistwidget::linguistwidget(qwidget *parent)

: qwidget(parent)

linguistwidget::~linguistwidget()

void linguistwidget::retranslateui()

3.在工程目錄下新建乙個資料夾名叫language(這些名字隨便取,但是要和下面的巨集一致),用來存放ts檔案,如下圖所示:

然後執行qmake,再執行qt creator選單欄中的"工具—>外部—>qt語言家—>更新翻譯(update)「完成後,工程目錄下的language資料夾裡會有兩個檔案,分別是langchinese.ts和langenglish.ts,如下圖所示:

6.在liguist程式中開啟步驟2生成的langchinese.ts和langenglish.ts檔案,在開啟檔案時會彈出語言設定視窗,在視窗中為相應的檔案選擇相應的目標語言,如下兩圖所示,然後選擇ok:

7.在彈出的語言翻譯介面中,為中文新增適當的翻譯(因為源語言就是英文,所以英文這裡不做翻譯),如下圖所示:

注意:新增完成後要執行一次qmake,否則會導致資源檔案無法識別和載入的現象。

10.為步驟2中新增的qpushbutton新增乙個槽函式,用來切換語言,關鍵**如下:

connect(m_pbtnchangelanguage, &qpushbutton::clicked, this, [=] else 

retranslateui();

});

11.介面一開始如下圖:

單擊一下按鍵變成:

在資源檔案中載入(個人偏向這個):

優點:

缺點:

在程式外部載入:

優點:

缺點:

示例原始碼

Qt 筆記 多語言

1 使用命令 lupdate no obsolete main.pro 作用 將main.pro檔案內的所有源程式檔案中的被tr 包裝的字串打包成.ts檔案,此檔案可以使用qt的qt linguist開啟並翻譯 2 使用命令 lrelease main.pro 作用 通過.ts檔案生成.qm檔案,此...

QT的多語言實現

基本流程是 先生成ts檔案,然後生成qm檔案,最後通過qtranslator類來載入qm檔案,實現多語言包的切換 在qt的專案檔案 pro 中新增 translations ts yyy.ts 如果是多行,則用 分割 pro檔案 qt core gui translations login.ts s...

Qt001 Qt的多語言支援

qt的多語言支援比較方便,這裡說一下大概的方案及乙個注意點。首先我們要把語言字串分為兩個部分 qt內建的字串 通用對話方塊和右鍵選單 和 應用自己的字串。qt實現多語言的思路是 1 在用到字串的地方,中全部使用乙個類似索引的固定字串。2 這些固定字串都會被qobject tr 函式進行處理後,轉換為...