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

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

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、然后我们用qt的Linguist.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();
}

学习链接:https://github.com/0voice


http://www.kler.cn/news/319481.html

相关文章:

  • Android个性名片界面的设计——约束布局的应用
  • 「iOS」——单例模式
  • Angular面试题三
  • javascript的闭包学习
  • Vue报错 ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
  • 电路板上电子元件检测系统源码分享
  • Spring Boot 配置全流程 总结
  • 视频转文字工具:开启视频内容深度挖掘的钥匙
  • centos7 docker部署nacos
  • HCIA--实验十七:EASY IP的NAT实现
  • 拒绝信息泄露!VMD滚动分解 + Informer-BiLSTM并行预测模型
  • PyFluent常用代码 1
  • QT开发模式(二):QML/JS/C++混合编程
  • 中国电子学会202312青少年软件编程(Python)等级考试试卷(四级)真题
  • 基于VUE的医院抗生素使用审核流程信息化管理系统
  • 前端如何实现截图?
  • webView2 隐藏滚动条
  • 【数据结构初阶】排序算法(上)插入排序与选择排序
  • echarts实现地图下钻并解决海南群岛显示缩略图
  • 【数学分析笔记】第3章第4节闭区间上的连续函数(1)
  • 外包干了5天,技术退步明显.......
  • 换脸黑科技FaceFusion 3.0(Windows Mac整合包)震撼来袭!
  • 初识网络编程(上)
  • 焊接缺陷检测系统源码分享
  • mysql数据库 - anolisos安装
  • Facebook Marketplace无法使用的原因及解决方案
  • Liblib:简化开发的强大工具
  • Leetcode 环形链表
  • C标准库<string.h>-str、strn开头的函数
  • 力扣 438找到字符串中所有字母异位词