Qt 语言切换 QTranslator cmake qmake
如果觉得下边这个工程有用的话,下载:http://118.25.63.144/temporary/TranslatorTest.zip
使用qt实现动态语言切换很方便。只需要利用Qt5LinguistTools生成一个.ts文件(多个语言需要多个.ts文件),让后使用QtLinguist软件打开.ts文件,填充翻译,发布为.qm文件。让后动态读取.qm就可以了。cmake/qmake下如如何配置Qt5LinguistTools可以看下边两个简单的案例。
需要翻译的文本应该用 tr把文本包含起来。
QString QObject::tr(const char *sourceText, const char *disambiguation = Q_OBJECT, int n = Q_OBJECT)
需要翻译的界面应该在属性下设置为可以翻译
更新和发布翻译
设置翻译文本,选择Qt5LinguistTools
- qmake
QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = untitled
TEMPLATE = appDEFINES += QT_DEPRECATED_WARNINGSCONFIG += c++11SOURCES += \main.cppRESOURCES += \resource.qrcTRANSLATIONS += en.ts# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
#include <QDebug>
#include <QTranslator>
#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);QTranslator translator;translator.load(":/new/prefix1/en.qm");qApp->installTranslator(&translator);qDebug() << QObject::tr("hell word");qApp->removeTranslator(&translator);qDebug() << QObject::tr("hell word");qApp->installTranslator(&translator);qDebug() << QObject::tr("hell word");return 0;
}
- camke
cmake_minimum_required(VERSION 3.1)project(untitled)set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 14)
option(BUILD_SHARED_LIBS "" OFF)find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Sql Test Xml Network Concurrent)
find_package(Qt5LinguistTools)set(Resourceresource.qrc)set(translateresource.qrc)qt5_create_translation(Translatemain.cppdialog.uien.ts)add_executable(${PROJECT_NAME}${Translate}${Resource}dialog.cppdialog.hdialog.uimain.cpp)target_link_libraries(${PROJECT_NAME}Qt5::CoreQt5::GuiQt5::WidgetsQt5::SqlQt5::XmlQt5::NetworkQt5::Concurrent)
#include <QTranslator>
#include <QApplication>
#include <QDebug>
#include "dialog.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);QTranslator translator;translator.load(":/en.qm");qApp->installTranslator(&translator);qDebug() << QObject::tr("hell word");qApp->removeTranslator(&translator);qDebug() << QObject::tr("hell word");Dialog w;w.exec();return 0;
}
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;
}class QTranslator;class Dialog : public QDialog {Q_OBJECTpublic:explicit Dialog(QWidget *parent = nullptr);~Dialog();protected:
// void changeEvent(QEvent *);private slots:void on_pushButton_clicked();private:Ui::Dialog *ui;QTranslator *translator_;
};#endif // DIALOG_H
#include "dialog.h"
#include "ui_dialog.h"
#include <QTranslator>
#include <QDebug>
#include <QLibraryInfo>Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog) {ui->setupUi(this);translator_ = new QTranslator();
}Dialog::~Dialog() {delete ui;
}void Dialog::on_pushButton_clicked() {static bool is_en = 0;if(!is_en) {qApp->removeTranslator(translator_);translator_ = new QTranslator();translator_->load(":/en.qm");qApp->installTranslator(translator_);ui->retranslateUi(this);} else {qApp->removeTranslator(translator_);ui->retranslateUi(this);}is_en = !is_en;
}
Qt 语言切换 QTranslator cmake qmake相关推荐
- 【大话QT之十四】QT实现多语言切换
功能需求: 网盘客户端要能够实现多国语言的切换,第一版要支持中.英文的切换.在实现过程中感觉QT对多国语言的支持还是很不错的,制作多语言包很方便,切换的逻辑也很简单.下面就来看一下QT中如何制作多语言 ...
- 浅谈Qt的编译方式:qmake/cmake/qbs及qbs被弃用的原因
1.Qbs简介 https://doc.qt.io/qbs/qml-qbsmodules-qbs.html Qt 编译方式之 qbs_lucky-billy的博客-CSDN博客_qbs QBS(Qt ...
- 2.4 Qt多国语言切换
如果要实现qt程序动态语言切换,最简单有效的方法是使用QTranslator类,首先使用QTranslator对象加载相应的翻译语言文件,然后用 QApplication::installTrans ...
- Qt之Qml 国际化—实现简易语言切换功能
目标:实现一个下拉框,具有切换语言的功能 GIF展示: 版本Qt5.14.2,版本不能低于5.10 qml控件 1.在QML文件中把需要翻译显示的文本用qsTr(" ")包裹起来 ...
- Qt+C++窗体界面中英文多语言切换
程序示例精选 Qt+C++窗体界面中英文语言切换 如需安装运行环境或远程调试,见文章底部个人微信名片,由专业技术人员远程协助! 前言 这篇博客针对<<Qt+C++窗体界面中英文语言切换& ...
- Qt多语言切换-Qt语言家
csdn文章地址 github网址 1. 前言 本文利用Qt语言大师工具,实现Qt程序的多国家语言切换,在github上放置的开源代码中同时放置了所使用的 Qt语言大师程序.CSDN上有众多的Qt语言 ...
- QT语言家实现软件中英文切换
环境:qtcreator 步骤: 首先是源代码中需要进行翻译转换的字符串内容要使用到tr函数包裹 工程文件.pro文件加上TRANSLATIONS += xx.ts 点击下图Qt语言家中的更新翻译,这 ...
- Qt 语言家实现中英文切换
生成ts文件 在QT的项目文件(.pro)中加入:TRANSLATIONS = XXX.ts YYY.ts(假设是多行,则用 \ 切割) TRANSLATIONS = CN.ts\EN.ts 工具-- ...
- QT 语言家 中英文切换
环境: vs +qt msvc 创建ts文件 第一种: 工具->QT VS Tools 选择 第二种: 点击ok后,生成.pro文件 打开.pro文件,在.pro文件中添加 TRANSLATIO ...
- qml中loader加载页面会闪屏_Qml动态语言切换
此方法需要在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现, 在Qt5.10或更高版本实现 重要的事情说三遍 首先在工程文件.pro中加入TRANSLATIONS = zh_CN.ts ...
最新文章
- MySQL 源码 需要 什么基础_MySQL 基础之 源码 部署
- 内存泄漏和内存溢出的关系和区别
- ansible(6)——模块命令command、shell详细用法
- easyUI的combobox设置隐藏和显示
- WS-Eventing、WS-Transfer Web服务标准
- 数据库分库分表、读写分离的原理和实现,以及使用场景
- 日语输入法 android8.0,讯飞输入法发布 AndroidV8.0.6855 专注提升输入效率
- php get请求_《细说PHP》第四版 样章 第23章 自定义PHP接口规范 10
- 移动开发的跨平台技术发展史 | 技术头条
- jquery筛选方法-选取父子元素
- 【概率论与数理统计】小结7 - 统计学中的基本概念
- python安装第三方库太慢,很容易失败报错?教你如何提速
- 爬虫实战:遇上gb2312编码的网页
- Python游戏——Pong
- 3.28leet28
- docker 网络的解释
- Web安全技术—常见的攻击和防御
- 特斯拉充电电流设置多大_特斯拉再次升级Model S 充电状况不稳时自动降低电流...
- HTML常见的处理文本的标签,比如说加粗啦、斜体啦等等等。。。
- winrar中文去广告版下载