qt編譯翻譯文件
① QM文件如何打開QM文件格式怎麼打開QM文件格式是什麼
QM文件格式指的是由一種叫做Qt語言程序創建的編譯語言翻譯文件。這個程序是用於創建Qt應用程序的翻譯。這個QM文件是原文和翻譯成另一種語言的內容存儲在一個緊湊的二進制格式。
工具/材料:notepad++、QM文件。
1、首先在桌面上,點擊「QM文件」快捷方式。
② 如何修改Qt標准對話框的文字
QT自帶的內建標准對話框QFontDialog、QColorDialog、QMessageBox。默認的文字全是英文的。QLineEdit和QTextEdit的右鍵菜單,默認的文字也全是英文的。
請問,如何可以把文字修改成中文或其他語言文字?
解決方案如下:
簡體中文的解決思路是打開Qt安裝目錄下的translations,找到qt_zh_CN.qm和qt_zh_CN.ts。
直接用qt_zh_CN.qm即可,如果確實有翻譯不完全的,打開qt_zh_CN.ts翻譯一下重新生成.qm文件即可。
即:把translation/qt_zh_CN.qm載入到QTranslator中。
其他國語言方法類似。
參考源碼:
#include "mainwindow.h"
#include <QApplication>
#include <QTranslator>
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_VS2010\\translations\\");//注,這里使用的是絕對路徑,建議把.qm拷貝到工程目錄下,然後使用相對路徑.
a.installTranslator(&tran);
//載入用戶自定義的界面翻譯文件
QTranslator user;
ok = user.load("user_zh.qm", ":/");
a.installTranslator(&user);
//設置全局文字大小,非必需,根據自身情況使用
QFont font = a.font();
font.setPointSize(9);
a.setFont(font);
MainWindow w;
w.show();
return a.exec();
}
最終效果圖:
如果軟體想動態得切換語言,則需要定義一個全局函數供調用,舉例如下:
#include "mainwindow.h"
#include <QApplication>
#include <QTranslator>
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/");
}
QCoreApplication::installTranslator(&g_tran);
//或者寫成qApp->installTranslator(&g_tran);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
setLanguage(1);//調用全局函數
MainWindow w;
w.show();
return a.exec();
}