一、使用背景

如果,当你使用QMessageBox、QFileDialog等系统提供的方法时,可能打开的界面中有个控件提示信息未汉化。
其实,qt是提供的qm翻译文件的,所以我们可以使用它来进行翻译了。
首先说明这里针对的是linux系统。

二、qt系统的翻译文件位置

在/usr/share/qt4/translations 目录下 ,或者/usr/share/qt5/translations,有的都有


众多翻译文件,比如 qt_zh_CN.qm 就是中文翻译,qt_zh_TW.qm就是台湾翻译,qt_ko.qm就是韩语等,大致规则就是国家缩写,网上一搜就知道了。

三、使用qt系统的翻译文件

使用的话,可以拷贝到自己项目资源里,也可以直接使用绝对路径
关键代码就是:

 QTranslator* qtTranslator = new QTranslator;qtTranslator->load("/usr/share/qt4/translations/qt_zh_CN.qm");/*系统绝对路径*/qtTranslator->load(":/qt_zh_CN.qm");/*资源文件*/qApp->installTranslator(qtTranslator);

四、使用例子展示

五、代码

.h文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>#include <QTranslator>
namespace Ui {class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_comboBox_currentIndexChanged(const QString &arg1);private:Ui::Widget *ui;QTranslator *m_translator = NULL;
};#endif // WIDGET_H

.cpp文件

#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>
#include <QFileDialog>
Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("CN");ui->comboBox->addItem("ja");ui->comboBox->addItem("ko");ui->comboBox->addItem("uk");on_comboBox_currentIndexChanged("CN");ui->label->setText("当前语言:CN");
}Widget::~Widget()
{delete ui;delete m_translator;
}void Widget::on_pushButton_clicked()
{QMessageBox box(QMessageBox::Question,"title","this is test");box.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);box.exec();
}void Widget::on_comboBox_currentIndexChanged(const QString &arg1)
{if(m_translator == NULL)m_translator = new QTranslator;ui->label->setText(QString("当前语言:%1").arg(arg1));if(arg1 == "CN"){m_translator->load("/usr/share/qt4/translations/qt_zh_CN.qm");}else if(arg1 == "ja") {m_translator->load("/usr/share/qt4/translations/qt_ja.qm");}else if(arg1 == "ko") {m_translator->load("/usr/share/qt4/translations/qt_ko.qm");}else if(arg1 == "uk") {m_translator->load("/usr/share/qt4/translations/qt_uk.qm");}qApp->installTranslator(m_translator);
}void Widget::on_pushButton_2_clicked()
{QFileDialog::getExistingDirectory(this,"文件选择","/");
}

Qt 系统下的qm翻译文件相关推荐

  1. qt中制作添加 .ts 翻译文件

    qt中制作添加 .ts 翻译文件 QT 中可以用其自身的工具对界面语言进行翻译,以实现支持语言的效果,这对于开发用户跨越语言区域的工具来说是一个特别实用的功能. 下面介绍怎么制作和使用qt的翻译文件: ...

  2. Tips--windows系统下gcc编译C文件为so共享库

    windows系统下gcc编译C文件为so共享库 1. windows系统安装gcc编译工具 2. 利用gcc编译多个c文件 3. 利用python工具验证生成的so共享库 1. windows系统安 ...

  3. linux通过iso安装php,linux系统下怎么安装iso文件?

    linux系统下怎么安装iso文件? 安装步骤: 1.在/mnt目录下,创建相应的iso文件夹,例如iso. 2.运行以下命令,挂载iso文件mount -o loop /home/tecmint/F ...

  4. android 读build.prop,Android系统下的build.prop文件

    Android系统下的build.prop文件,用adb shell进入,再进入到system目录,查看该目录下的文件,会看到build.prop文件,用exit命令退出. 1551927518(1) ...

  5. win10不能上传文件到服务器,Win10系统下蓝牙无法传输文件怎么解决

    在win10系统中,自带有蓝牙功能,可以方便用户们进行数据传输等,但是有些用户却反映说遇到蓝牙无法传输文件的情况,该怎么解决这样的情况呢?本文就给大家讲解一下Win10系统下蓝牙无法传输文件的具体解决 ...

  6. linux系统下怎么安装.deb文件?

    linux系统下怎么安装.deb文件? deb 是 ubuntu .debian 的格式. rpm 是 redhat .fedora .suse 的格式. 他们不通用(虽然可以转换一下). deb是d ...

  7. Mac和Ubuntu系统下.bash_profile和.bashrc文件

    Mac和Ubuntu系统下.bash_profile和.bashrc文件 本文部分参考Josh Staiger文章. Mac和Ubuntu系统下bash_profile和bashrc文件 前言 log ...

  8. linux系统下 压缩和解压缩文件命令

    linux系统下 压缩和解压缩文件命令 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2.把/home ...

  9. Windows系统下实现两个文件夹自动同步问题(mklink命令的使用)

    Windows系统下实现两个文件夹自动同步问题(mklink命令的使用) 例:E:\My OneNote文件夹同步到OneDrive中 路径1:C:\Users\XXX\OneDrive\My One ...

最新文章

  1. 免费获取半年 Bitdefender Total Security 2014
  2. matlab无限长序列卷积,怎样求未知长度序列的卷积
  3. python课堂笔记
  4. BM39 序列化二叉树
  5. 静态static关键字概述
  6. 国家自科委管文科学部认定的国内30种重要期刊
  7. python安装Selenium,配置ChromeDriver
  8. Android Room 之存储 Objects 中的 List
  9. 语音广播服务器,智慧校园语音广播说明(二)
  10. 微信公众号开发详细过程(亲手总结)
  11. 网络管理-Pageadmin CMS构建企业网站的方法
  12. Visual SourceSafe中的权限管理(转载,已测试)
  13. 12/27复习有感--整环的整除性
  14. mysql数据库设计教材_mySQL教程 第1章 数据库设计
  15. 文字跳跃率与图片跳跃率
  16. mount gives unknown filesystem type 'vboxsf' 解决方法
  17. JAVA设计模式总结之六大设计原则(一)
  18. office2013来了
  19. sass 转换为 css
  20. 并网光伏逆变器的基本设计

热门文章

  1. 高楼火灾的时候如何利用逃生缓降器进行逃生?
  2. 【web素材】03-24款后台管理系统网站模板
  3. AD16如何在3D环境翻转PCB
  4. 物联网-物联前端安全加密技术简介
  5. twrp显示 failed to mount system
  6. 视频转换格式,用DOS命令
  7. # SpringCloud集成 报错 An attempt was made to call a method that does not exist. The attempt was
  8. DNS劫持及网页跳转到莫名站点时应该怎么办?(DNS劫持和HTTP劫持及解决方法)
  9. 【计网实验报告】Cisco局域网模拟组建、简单网络测试
  10. 谷歌地图高清卫星地图、电子地图和地形图有什么区别?