【嵌入式——QT】多语言界面

【嵌入式——QT】多语言界面

  • 多语言页面开发步骤
  • tr()函数

多语言页面开发步骤

第一步
在你编写的代码中添加tr()函数,方便之后可以精准的定位到你所需要翻译的部分。
第二步
在.pro文件中添加以下代码,这样会让你生成相应的.ts文件,ts文件是.xml格式的文件,可以让你看到你所需要翻译的内容。

#国际化
TRANSLATIONS += en_tr.ts zh_tr.ts

第三步
QtCreator->工具->外部->linguist(qt语言家)->lupdate(更新翻译) 会在你的项目目录中生成相应的.ts文件。
在这里插入图片描述

第四步
找到你的linguist,在你的QT安装目录下D:\Qt\Qt5.12.6\5.12.6\msvc2015_64\bin
在这里插入图片描述

  1. 文件打开你所生成的.ts文件
  2. 选择编辑的文件
  3. 选择编辑的字符串
  4. 将你确定翻译的语言编写在这
  5. 进行调试,当3出现绿色的对号证明你翻译的是没有问题的
  6. 进行保存

在这里插入图片描述

第五步
QtCreator->工具->外部->linguist(qt语言家)->lrelease(发布翻译) 会生成两个.qm文件,也就是我们项目中使用到的文件。
在这里插入图片描述

第六步
编写代码

#include <QTranslator>
QTranslator translator;void MainWindow::translateEnglish() {translator.load(":/en_tr.qm");qApp->installTranslator(&translator);ui->retranslateUi(this);
}
void MainWindow::translateChinese() {translator.load(":/zh_tr.qm");qApp->installTranslator(&translator);ui->retranslateUi(this);
}如果有其他的页面的话 还可以重写一下事件
void changeEvent(QEvent* event);void MainWindow::changeEvent(QEvent* event) {if (event->type() == QEvent::LanguageChange) {//TODO 实现相应的逻辑}
}

tr()函数

tr()是QObject的一个静态函数,在使用了Q_OBJECT宏定义的类或QObject的子类中,都可以直接使用tr()函数,否则需要使用QObject::tr()进行调用。
尽量使用常量字符串,不要使用字符串变量。
使用字符串变量时需要用Qt_TR_NOOP()宏进行标记。Qt_TR_NOOP("北京")
tr()不能使用拼接的动态字符串。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/568767.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

湍流系统的混沌性质

同样的系统&#xff0c;边界条件一致&#xff0c;初始条件一致&#xff0c;采用不同的核并行&#xff0c;得到的系统的响应参数随着时间推进逐渐开始出现分叉&#xff0c;原因是由于细小的误差被不断放大。 But&#xff0c;系统的统计特性依然是不变的。

发展新质生产力,亚信科技切中产业痛点

管理学大师拉姆查兰认为&#xff0c;经营性不确定性通常在预知范围之内&#xff0c;不会对原有格局产生根本性影响&#xff1b;而结构性不确定性则源于外部环境的根本性变化&#xff0c;将彻底改变产业格局&#xff0c;带来根本性影响。 毫无疑问&#xff0c;一个充满结构性不…

编程语言|C语言——C语言实现玫瑰花(情人节)

1.说明 在古希腊神话中&#xff0c;玫瑰花集爱与美于一身&#xff0c;既是美神的化身&#xff0c;又溶进了爱神的血液&#xff0c;所以它所代表的含义是爱情。 我们应该用玫瑰花来表达我们的爱意&#xff0c;但是好多的恋人都是因为异地而没有办法去买一束新鲜的玫瑰去送给自己…

window下迁移SVN仓库到新的windows服务器

一、背景 一个基于 Windows 的 SVN 服务器&#xff0c;用于管理团队的代码库。该 SVN 仓库托管着公司的软件项目&#xff0c;包括多个分支和版本的代码。我们的团队规模约为 50 人&#xff0c;分布在不同的地理位置&#xff0c;他们都依赖 SVN 仓库来进行代码版本控制和协作开…

基于nodejs+vue医院综合管理系统实现与设计python-flask-django-php

第一&#xff0c;研究分析当下主流的nodejs技术&#xff0c;结合医院日常管理方式&#xff0c;进行医院综合管理系统的数据库设计&#xff0c;设计医院综合管理系统功能&#xff0c;并对每个模块进行说明。 第二&#xff0c;陈列说明该系统实现所采用的架构、系统搭建采用的服务…

window平台C#实现软件更新功能

一 实现程序更新思路 程序实现自我升级&#xff0c;一般有两种方式&#xff1a; 1. 独立的更新程序 开发一个独立的更新程序如Update.exe&#xff0c;用于检查主程序是否有新版本&#xff0c;并下载和安装新版本。 实现步骤&#xff1a; 主程序启动完后&#xff0c;调用一下…

30岁失业的我,选择职场转型,进入AIGC工程师领域,重新开始

去年&#xff0c;刚满30岁的我又一次被公司辞退了&#xff0c;由于学历不高&#xff0c;简历也不出彩&#xff0c;尽管半个月来投了一份又一份的简历&#xff0c;但仍然是石沉大海&#xff0c;我终于不得不开始思考一个以前被我一直刻意压制的想法——职场转型。 尽管知道这条…

笔记—学习【立创】如何使用示波器—捕捉波形

如何使用示波器的信号触发功能 在工程实践中&#xff0c;经常要测量一些不连续的波形。例如&#xff0c;USART、SPI、IIC通讯&#xff0c;只有在通讯时才会产生相应的波形&#xff0c;如果示波器的触发模式没有选择好的话&#xff0c;我们是看不到这个波形的。 切换触发模式 …

ChatGPT 提示词:2024最新AIGC提示词大全(文末名片获取电子书)

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

DARTS-: ROBUSTLY STEPPING OUT OF PERFORMANCE COLLAPSE WITHOUT INDICATORS

DARTS-&#xff1a;增加辅助跳跃连接&#xff0c;鲁棒走出搜索性能崩溃 论文链接&#xff1a;https://arxiv.org/abs/2009.01027 项目链接&#xff1a;GitHub - Meituan-AutoML/DARTS-: Code for “DARTS-: Robustly Stepping out of Performance Collapse Without Indicators…

linux 系统安装php 8.0.2

1. 安装包准备 https://www.php.net/distributions/php-8.0.22.tar.gz 我下载到 /usr/local/src 这个目录了 cd /usr/local/srcwget https://www.php.net/distributions/php-8.0.22.tar.gz 2. tar 解压 然后进到解压的文件夹 tar -zxvf php-8.0.22.tar.gz cd php-8.0.2…

C语言 汉诺塔问题

目录 1.前言 2.问题描述 3.问题分析 4.定义一个主函数 5.再定义一个hanoi函数 6.所有代码 7.结语 1.前言 汉诺塔问题&#xff0c;是心理学实验研究常用的任务之一。该问题的主要材料包括三根高度相同的柱子和一些大小及颜色不同的圆盘&#xff0c;三根柱子分别为起始柱A…