当前位置: 首页 > news >正文

Qt 多语言

记录Qt多语言的实现过程

目录

1.项目配置文件.pro配置

2.程序中的字符串用tr()封装

3.生成翻译文件

4.使用Qt语言家修改翻译文件

4.1使用Qt语言家打开

4.2 .更改文件配置

 5. 生成qm文件

6.代码执行切换语言

6.1入口处

6.2 事件执行


0.效果

1.项目配置文件.pro配置

TRANSLATIONS+= en_tr.ts \zh_tr.ts

2.程序中的字符串用tr()封装

labInfo->setText(tr("字体名称"));

3.生成翻译文件

4.使用Qt语言家修改翻译文件

4.1使用Qt语言家打开

4.2 .更改文件配置

 5. 生成qm文件

6.代码执行切换语言

6.1入口处

入口函数引用、声明

//多语言使用
#include <QTranslator>
#include <QSettings>QTranslator trans;   

入口函数内部

//多语言入口函数内部QApplication::setOrganizationName("CC-Qt");QApplication::setApplicationName("CC");QSettings settings;QString curLang = settings.value("Language","CN").toString();//读取注册表bool success =false;if(curLang=="EN")success = trans.load("en_tr.qm");elsesuccess = trans.load("zh_tr.qm");if(success)a.installTranslator(&trans);TextEditorExample example;example.show();

6.2 事件执行

extern QTranslator trans;//声明外部变量
void TextEditorExample::on_actLang_EN_triggered()
{if(trans.load("en_tr.qm")){ui->retranslateUi(this);labInfo->setText(tr("字体名称"));QSettings settings;settings.setValue("Language","CN");}
}void TextEditorExample::on_actLang_CN_triggered()
{if(trans.load("zh_tr.qm")){ui->retranslateUi(this);labInfo->setText(tr("字体名称"));QSettings settings;settings.setValue("Language","CN");}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 解决spring boot中使用拦截器导致swagger文档无法访问
  • 数据库内核研发学习之路(三)创建postgres内置函数
  • Linux 安装多个jdk,切换使用
  • OPC通信从入门到精通_2_OPC通信详解和C#客户端编程(OPC基础概念;OPC通信仿真(KepServer作为OPC服务器;使用Modbus Slave和另外软件仿真2个PLC设备);C#程序)
  • Android使用AndServer在安卓设备上搭建服务端(Java)(Kotlin)两种写法
  • 大语言模型LLM
  • 详解python基本语法
  • 每日一练——第四题
  • vue自制表格
  • 什么是TCP
  • vue3+TS从0到1手撸后台管理系统
  • rust + python+ libtorch
  • python用selenium网页模拟时xpath无法定位元素解决方法2
  • Spark中的JOIN机制
  • 集合的定义和特点
  • 【css3】浏览器内核及其兼容性
  • 【React系列】如何构建React应用程序
  • Android系统模拟器绘制实现概述
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • echarts的各种常用效果展示
  • FastReport在线报表设计器工作原理
  • happypack两次报错的问题
  • in typeof instanceof ===这些运算符有什么作用
  • leetcode-27. Remove Element
  • Python_网络编程
  • Vue组件定义
  • 飞驰在Mesos的涡轮引擎上
  • 今年的LC3大会没了?
  • 前端之Sass/Scss实战笔记
  • 日剧·日综资源集合(建议收藏)
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 突破自己的技术思维
  • 由插件封装引出的一丢丢思考
  • 鱼骨图 - 如何绘制?
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​数据结构之初始二叉树(3)
  • ‌JavaScript 数据类型转换
  • ### RabbitMQ五种工作模式:
  • #14vue3生成表单并跳转到外部地址的方式
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (笔试题)合法字符串
  • (二)windows配置JDK环境
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十)c52学习之旅-定时器实验
  • (五)c52学习之旅-静态数码管
  • (译)计算距离、方位和更多经纬度之间的点
  • .net 4.0发布后不能正常显示图片问题
  • .Net core 6.0 升8.0
  • .net core Swagger 过滤部分Api
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net Core与存储过程(一)
  • .NET delegate 委托 、 Event 事件
  • .net FrameWork简介,数组,枚举