Qt學習筆記 動態切換語言

2021-06-16 08:14:18 字數 1115 閱讀 2266

**:

dipperkun的部落格

在編寫國際化程式的時候,很多情況下都是在系統啟動的過程中選擇語言,然後載入對應的地方語言翻譯檔案,實現語言的本地化。

但是也會有使用者需要進行動態的語言切換(dynamic language switching),也就是在程式主體都執行起來後,需要改變語言的選項。而使用者不希望因為語言切換而引起程式的重啟或者視窗的關閉。

qt的國際化設計提供了這種可能。要實現這種動態切換,只需要在程式裡使用一點小小的技巧,就是把呼叫了qt翻譯語句tr的**集中在某個和窗體變化無關的函式裡,比如retranslatestrings()這樣的函式裡。在改變語言的時候,呼叫這個函式就可以了。

例子:

#ifndef dialog_h

#define dialog_h

#include class qlabel;

class qpushbutton;

class dialog : public qdialog

;#endif

#include #include "dialog.h"

dialog::dialog(qwidget *parent)

: qdialog(parent)

//tr()相關的語句

void dialog::retranslatestrings()

//切換語言

void dialog::switchlang()

else

retranslatestrings();

}int main(int argc, char *argv)

target =

dependpath += .

includepath += .

# input

headers += dialog.h

sources += dialog.cpp main.cpp

# 翻譯檔案

translations += switchlang_zh.ts

//編譯執行

lupdate switchlang.pro

lrelease switchlang.pro

qmake

make

QT的動態語言切換

1.在.pro檔案裡新增的內容如下 2.新增好以後,在工具 外部 qt語言家 更新語言 啟動外部工具 c qt 4.8.6 bin lupdate.exe c qt test qtwidget qtwidget.pro updating zh cn.ts found 7 source text s ...

QT多視窗語言動態切換

1 在main函式中進行靜態切換 qtranslator translator translator.load qstring language cn.qm a.installtranslator translator 2 在介面上進行動態切換 qtranslator translator tran...

QT多國語言動態切換常見例子

qt多國語言需要用到三個工具 l lupdate 生成ts檔案 l linguist 翻譯ts 檔案中的字串 l lrelease 生成qm檔案 這三個工具都是qt自帶的工具,在相關的安裝路徑下。1.準備乙個介面工程 新建工程命名為 cabagge langsw,使用設計師設計介面設計如下 設定下拉...