Qt中多语言的操作(以QtCreator为例)

server/2024/9/23 22:58:45/

1、首先,我们在代码中与文本相关的且需要支持多语言的地方,用tr来包含多语言key(多语言key是我们自己定义的),如下

//举例
QPushButton* btn=new QPushButton(this);
btn->move(20,20);
btn->resize(100,50);
//使用tr()包裹多语言key,多语言key是我们自己定义的,比如"user_name"
btn->setText(tr("user_name"));QPushButton* btn2=new QPushButton(this);
btn2->move(20,80);
btn2->resize(100,50);
btn2->setText(tr("password"));

 2、然后我们在项目中添加新文件,选择QT Translation File,然后我们的项目中就会新增一个.ts文件

3、然后我们编译我们的项目(每次代码中有新增的多语言key最好都先编译下),然后点击update,将多语言key打入到.ts文件中

 4、然后我们用qtLinguist.exe打开前面添加的.ts文件,在这个exe中我们就可以对多语言key进行翻译了

 5、然后我们release就可以得到翻译文件.qm文件了(文件在项目路径下)

 6.然后我们将qm文件放到合适的目录下(哪里都行,只要你知道路径,一般是放在exe执行目录下),在main函数中就可以利用QTranslater这个类加载.qm文件

int main(int argc, char *argv[])
{QApplication a(argc, argv);//"路径要使用反斜杠"QString qm_path=a.applicationDirPath()+"/dda_zh_CN.qm";QTranslator* trans=new QTranslator();/*
这里可以写if,如果是中文环境就加载中文的qm文件
是英文就加载英文的qm文件
什么环境加载对应的qm语言文件
*/trans->load(qm_path);a.installTranslator(trans);Widget w;w.show();return a.exec();
}


http://www.ppmy.cn/server/121021.html

相关文章

Linux自主学习篇

用户及权限管理 sudo 是 "superuser do" 的缩写,是一个在类 Unix 操作系统(如 Linux 和 macOS)中使用的命令。它允许普通用户以超级用户(root 用户)的身份执行命令,从而获得更高的权限。 useradd…

DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读

文章链接:https://arxiv.org/abs/2308.01979http://arxiv.org/abs/2212.10505https://arxiv.org/abs/2308.01979 源码链接:https://github.com/cse-ai-lab/RealCQA 启发:two-stage方法可能是未来主要研究方向,能够增强模型可解释…

AI大模型的前十岗位薪资,谁还说读书没用?零基础入门到精通,收藏这一篇就够了

1. AI系统架构师 薪资范围:100万 - 200万/年 职位要求:需要具备全面的技术背景,精通系统架构设计,能够有效整合AI技术,提升系统性能。要求硕士及以上学历,计算机科学或相关专业背景。 目标院校&#xff1…

基于QT的C++中小项目软件开发架构源码

描述 基于QT信号槽机制实现类之间的交互调用通信,适用于使用不同枚举作为消息交互的类型场景,支持附带任意参数,代码使用方式参考前一篇文章 特性 仅需包含一个头文件Communicator.h,需要通信的业务类继承Communicator&#xf…

Android 命令行关机

在 Android 设备上,可以通过以下命令行命令来关机: adb shell reboot -p其中: adb shell:通过 ADB 进入设备的命令行环境。reboot -p:执行关机操作,-p 表示关机而不是重启。 如果你是在设备本地的终端上而…

Spring源码学习:SpringMVC(1)根容器初始化

目录 前言 Servlet介绍 Servlet 接口及其实现类结构 Servlet生命周期 初始化阶段 运行阶段 销毁阶段 SpringMVC源码环境构建 web.xml配置 applicationContext.xml spring-mvc.xml 相关bean以及静态页面 TestController TestService index.jsp 源码剖析-根容器初…

DNS是什么?怎么设置

NS是什么意思?有什么用呢?专业的说DNS就是域名系统 (Domain Name System)的简称,也就是IT人士常说的域名解析系统。主要是让用户在互联网上通过域名找到域名对应的IP地址,因为IP地址都是一串数字(例如:192.168.0.1)不方便记忆,便…

基于MaxScale搭建MariaDB读写分离集群的方法【2024年最新版】

1、什么是MaxScale MaxScale是MariaDB数据库的一个中间件,为MariaDB提供代理服务,主要可以实现读写分离和一定的负载均衡功能,其中读写分离可将读操作和写操作分离到不同的数据库服务器上,以提高系统的整体性能和扩展性&#xff…