__ == '__main__': configs.init_configs() # 确定语言配置 app = QApplication(sys.argv) trans = QTranslator ui_main.py -ts en.ts 借助Qt语言家发布得到en.qm和zh_CN.qm这2个文件,放在res/locale目录里 在UI上设置触发切换语言 界面上需要按钮或菜单栏的action;需要持有QTranslator ; self.trans = QTranslator() # 初始化时获取 QTranslator self.
20200507231745.png Translate_EN.ts 汉语>英语 20200507232217.png step4:生成.qm 发布.png step5:加载qm文件 定义QTranslator 对象 QTranslator *m_Translator; 分配对象 m_Translator = new QTranslator(this); 切换英文 m_Translator‐>load("
加载翻译 打开 main.cpp 文件,在实例化 app 对象后面加入如下代码(别忘了 include QTranslator): QTranslator translator; if (translator.load app.installTranslator(&translator); } translator.load() 的参数说明如下(也可以参考 Qt 官网:https://doc.qt.io/qt-5/qtranslator.html
函数获取需要翻译的文本 lupdate.exe编译生成xxx.ts文件 linguist.exe进行翻译 lrelease.exe生成去xxx.qm文件 ---- 示例 单一语言翻译,直接main中注册 QTranslator *translator = new QTranslator; translator->load("lang_en.qm"); a.installTranslator(translator);//安装翻译器 多种语言 #include "widget.h" #include "ui_widget.h" #include <QVBoxLayout> #include <QTranslator> #include m_signLabel); } Widget::~Widget() { delete ui; } void Widget::changeLanguage(int index) { static QTranslator removeTranslator(translator); delete translator; translator = nullptr; } translator = new QTranslator
#include <QApplication>#include <QTranslator>#include <QPushButton>#include <QLabel>int main(int argc , char *argv[]) { QApplication app(argc, argv); // 创建翻译器对象 QTranslator translator; // 根据用户的语言设置加载对应的翻译文件 #include <QApplication>#include <QTranslator>#include <QPushButton>#include <QLabel>#include <QVBoxLayout retranslateUi(); } QWidget::changeEvent(event); }private: void retranslateUi() { QTranslator
step5:加载qm文件 定义QTranslator对象(类内定义) QTranslator *m_Translator; 分配对象(构造中分配) m_Translator = new QTranslator
main.cpp #include <QCoreApplication> #include <QTranslator> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QTranslator translator; if (!
)再将qt_zh_CN.qm放到自己项目的资源文件里 5)在main函数里添加以下代码 //注意:必须要放在QApplication a(argc, argv);后面处,因为下面代码要初始化这个对象 QTranslator *trans = new QTranslator; trans->load(":/res/qm/qt_zh_CN.qm"); QCoreApplication::installTranslator(
使用QTranslator和.ts文件实现国际化:QTranslator translator;translator.load("app_fr_FR.qm");app.installTranslator
在介绍程序前先定义几个概念,Qt的QTranslator 通过加载qm文件实现翻译的效果, 而qm文件是Qt的Linguist工具通过Qt 的lupdate工具生成的ts文件得到的。 QDialog(parent), ui(new Ui::setLanguageDialog) { ui->setupUi(this); m_translator = new QTranslator
❞ 0x01 加载语言文件操作 /* 加载中文语言(默认) */ QTranslator translator; if (! { return m_language; } void setLanguage(const QString &language) { QTranslator
nmake install 耗时约5分钟 试运行PyQt5 导入PyQt5模块试一试 from PyQt5.QtCore import QTranslator from PyQt5.QtGui import
QTranslator类是主要的 Qt 类,负责处理输出(显示)文本的国际化。 您只需要确保以下几点: 在构建项目时,请使用默认语言(例如英语)。 首先将QTranslator包含文件添加到mainwindow.h文件中,并在MainWindow类中定义两个私有QTranslator对象,如下所示: QTranslator *turkishTranslator = new QTranslator(this); turkishTranslator ->load(":/translations/translation_tr.qm "); germanTranslator = new QTranslator(this); germanTranslator ->load(": retranslateUi函数是使用UIC生成的(请参阅本章的UIC部分),它只是根据应用中最新安装的QTranslator对象设置正确翻译的字符串。 而已。