當前位置:成語大全網 - 漢語詞典 - 如何修改Qt標準對話框的文本

如何修改Qt標準對話框的文本

QT自帶內置標準對話框QFontDialog、QColorDialog和QMessageBox。默認文本全部為英文。QLineEdit和QTextEdit的右鍵菜單,默認文字全是英文。

請問怎麽把文字改成中文或者其他語言?

解決方案如下:

簡體中文的解決方法是打開Qt安裝目錄下的翻譯,找到qt_zh_CN.qm和Qt _ zh _ cn.ts。

直接用qt_zh_CN.qm就行了。如果確實有不完整的翻譯,打開qt_zh_CN.ts翻譯並重新生成。qm文件。

也就是將translation/qt_zh_CN.qm加載到QTranslator中。

其他國家也有類似的語言方法。

參考源代碼:

#包含“mainwindow.h”

# include & ltQApplication & gt

# include & ltQTranslator & gt

int main(int argc,char *argv[])

{

QApplication a(argc,argv);

//加載Qt標準對話框的中文翻譯文件。

QTranslator tran

bool ok = tran.load("qt_zh_CN.qm "," C:\ \ Qt \ \ 4 . 8 . 5 _ vs 2010 \ \ translations \ \ ");//註意,這裏用的是絕對路徑。建議復制。qm到項目目錄,然後使用相對路徑。

a . install translator(& amp;tran);

//加載自定義接口翻譯文件。

QTranslator用戶;

ok = user.load("user_zh.qm ",":/");

a . install translator(& amp;用戶);

//設置全局文字大小,不需要,根據自己的情況使用即可。

q font font = a . font();

font . setpointsize(9);

a.setFont(字體);

主窗口w;

w . show();

返回a . exec();

}

最終效果圖:

如果軟件想要動態地切換語言,它需要定義壹個全局函數來調用,例如:

#包含“mainwindow.h”

# include & ltQApplication & gt

# include & ltQTranslator & gt

QTranslator g _ tran//必須設置為全局變量。如果是局部變量,設置將無效。

Void setLanguage(int lan)//全局函數,可以被其他文件調用。

{

bool ok = false

If (lan == 1)//中文

{

ok = g_tran.load("qt_zh_CN.qm ",":/LAN/");//這裏使用了Qt資源文件,而。qm文件被復制到項目路徑/lan。

}

Else if (lan == 2)//英語

{

ok = g_tran.load(",":/LAN/");

}

qcore application::install translator。g _ tran);

//或者寫成qapp->;安裝翻譯器(& ampg _ tran);

}

int main(int argc,char *argv[])

{

QApplication a(argc,argv);

set language(1);//調用全局函數

主窗口w;

w . show();

返回a . exec();

}