Qt 系统下的qm翻译文件
一、使用背景
如果,当你使用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翻译文件相关推荐
- qt中制作添加 .ts 翻译文件
qt中制作添加 .ts 翻译文件 QT 中可以用其自身的工具对界面语言进行翻译,以实现支持语言的效果,这对于开发用户跨越语言区域的工具来说是一个特别实用的功能. 下面介绍怎么制作和使用qt的翻译文件: ...
- Tips--windows系统下gcc编译C文件为so共享库
windows系统下gcc编译C文件为so共享库 1. windows系统安装gcc编译工具 2. 利用gcc编译多个c文件 3. 利用python工具验证生成的so共享库 1. windows系统安 ...
- linux通过iso安装php,linux系统下怎么安装iso文件?
linux系统下怎么安装iso文件? 安装步骤: 1.在/mnt目录下,创建相应的iso文件夹,例如iso. 2.运行以下命令,挂载iso文件mount -o loop /home/tecmint/F ...
- android 读build.prop,Android系统下的build.prop文件
Android系统下的build.prop文件,用adb shell进入,再进入到system目录,查看该目录下的文件,会看到build.prop文件,用exit命令退出. 1551927518(1) ...
- win10不能上传文件到服务器,Win10系统下蓝牙无法传输文件怎么解决
在win10系统中,自带有蓝牙功能,可以方便用户们进行数据传输等,但是有些用户却反映说遇到蓝牙无法传输文件的情况,该怎么解决这样的情况呢?本文就给大家讲解一下Win10系统下蓝牙无法传输文件的具体解决 ...
- linux系统下怎么安装.deb文件?
linux系统下怎么安装.deb文件? deb 是 ubuntu .debian 的格式. rpm 是 redhat .fedora .suse 的格式. 他们不通用(虽然可以转换一下). deb是d ...
- Mac和Ubuntu系统下.bash_profile和.bashrc文件
Mac和Ubuntu系统下.bash_profile和.bashrc文件 本文部分参考Josh Staiger文章. Mac和Ubuntu系统下bash_profile和bashrc文件 前言 log ...
- linux系统下 压缩和解压缩文件命令
linux系统下 压缩和解压缩文件命令 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2.把/home ...
- Windows系统下实现两个文件夹自动同步问题(mklink命令的使用)
Windows系统下实现两个文件夹自动同步问题(mklink命令的使用) 例:E:\My OneNote文件夹同步到OneDrive中 路径1:C:\Users\XXX\OneDrive\My One ...
最新文章
- 免费获取半年 Bitdefender Total Security 2014
- matlab无限长序列卷积,怎样求未知长度序列的卷积
- python课堂笔记
- BM39 序列化二叉树
- 静态static关键字概述
- 国家自科委管文科学部认定的国内30种重要期刊
- python安装Selenium,配置ChromeDriver
- Android Room 之存储 Objects 中的 List
- 语音广播服务器,智慧校园语音广播说明(二)
- 微信公众号开发详细过程(亲手总结)
- 网络管理-Pageadmin CMS构建企业网站的方法
- Visual SourceSafe中的权限管理(转载,已测试)
- 12/27复习有感--整环的整除性
- mysql数据库设计教材_mySQL教程 第1章 数据库设计
- 文字跳跃率与图片跳跃率
- mount gives unknown filesystem type 'vboxsf' 解决方法
- JAVA设计模式总结之六大设计原则(一)
- office2013来了
- sass 转换为 css
- 并网光伏逆变器的基本设计
热门文章
- 高楼火灾的时候如何利用逃生缓降器进行逃生?
- 【web素材】03-24款后台管理系统网站模板
- AD16如何在3D环境翻转PCB
- 物联网-物联前端安全加密技术简介
- twrp显示 failed to mount system
- 视频转换格式,用DOS命令
- # SpringCloud集成 报错 An attempt was made to call a method that does not exist. The attempt was
- DNS劫持及网页跳转到莫名站点时应该怎么办?(DNS劫持和HTTP劫持及解决方法)
- 【计网实验报告】Cisco局域网模拟组建、简单网络测试
- 谷歌地图高清卫星地图、电子地图和地形图有什么区别?