如何修改Qt标准对话框的文字(例如,英文改成中文)
此篇文章参考qtcn论坛整理而成,因为文字和图片是本人亲自组织,所以仍算原创。
http://www.qtcn.org/bbs/read-htm-tid-30650.html
http://blog.csdn.net/yangxiao_0203/article/details/7488967
如图所示,QT自带的内建标准对话框QFontDialog、QColorDialog、QMessageBox。默认的文字全是英文的。QLineEdit和QTextEdit的右键菜单,默认的文字也全是英文的。
请问,如何可以把文字修改成中文或其他语言文字?
解决方案如下:
简体中文的解决思路是打开Qt安装目录下的translations,找到qt_zh_CN.qm和qt_zh_CN.ts。
直接用qt_zh_CN.qm即可,如果确实有翻译不完全的,打开qt_zh_CN.ts翻译一下重新生成.qm文件即可。
即:把translation/qt_zh_CN.qm加载到QTranslator中。
其他国语言方法类似。
参考源码:
#include "mainwindow.h"
#include <QApplication>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//加载Qt标准对话框的中文翻译文件
QTranslator tran;
bool ok = tran.load("qt_zh_CN.qm", "C:\\qt\\4.8.5_VS2010\\translations\\");//注,这里使用的是绝对路径,建议把.qm拷贝到工程目录下,然后使用相对路径.
a.installTranslator(&tran);
//加载用户自定义的界面翻译文件
QTranslator user;
ok = user.load("user_zh.qm", ":/");
a.installTranslator(&user);
//设置全局文字大小,非必需,根据自身情况使用
QFont font = a.font();
font.setPointSize(9);
a.setFont(font);
MainWindow w;
w.show();
return a.exec();
}
最终效果图:
如果软件想动态得切换语言,则需要定义一个全局函数供调用,举例如下:
#include "mainwindow.h"
#include <QApplication>
#include <QTranslator>
QTranslator g_tran;//必须设置成全局变量,如果是局部变量,设置将失效。
void setLanguage(int lan)//全局函数,可供其他文件调用
{
bool ok = false;
if (lan == 1)//中文
{
ok = g_tran.load("qt_zh_CN.qm", ":/lan/");//这里使用Qt资源文件,把.qm文件拷贝到项目路径/lan之下
}
else if (lan == 2)//英文
{
ok = g_tran.load("", ":/lan/");
}
QCoreApplication::installTranslator(&g_tran);
//或者写成qApp->installTranslator(&g_tran);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
setLanguage(1);//调用全局函数
MainWindow w;
w.show();
return a.exec();
}
http://blog.csdn.net/libaineu2004/article/details/19030129
如何修改Qt标准对话框的文字(例如,英文改成中文)的更多相关文章
- Qt标准对话框按钮文字等设置为中文
问题描述:QMessageBox.QColorDialog等标准对话框按钮显示都是英文 设置中文方法如下: 1)拷贝Qt安装目录下的qt_zh_CN.qm和qt_zh_CN.ts文件到工程目录中 2) ...
- qt中qlineedit和qtextedit右键菜单翻译成中文
没有linguist和lupdate等命令需要安装Linguist: 在Terminal中输入: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtco ...
- 【Qt开发】Qt标准对话框之QMessageBox
好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新.而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework.好了,现 ...
- Qt标准对话框之QColorDialog
Qt中提供了一些标准的对话框,用于实现一些常用的预定义功能,比如本节中将要介绍的颜色对话框——QColorDialog. 在不同的系统平台下,颜色对话框的显示效果可能会有所不同,主要因系统主题风格而异 ...
- qt 标准对话框
if (QMessageBox::Yes == QMessageBox::question(this, tr("Question"), ...
- 修改DevExpress中英文提示,将英文改为中文
1 : 修改DX 提示框中的英文字符 /// <summary> /// 重写DX弹出框 英文变为中文 /// </summary> public class CHS : De ...
- Qt中的标准对话框之QMessageBox
1. Qt标准对话框 Qt为开发者提供了一些可复用的对话框类型 Qt提供的可复用对话框全部继承自QDialog类 Qt中的对话框的使用方式和QDialog完全一致 2. 标准对话框的使用步骤 ①定义对 ...
- 如何将基于对话框的MFC工程改成基于BCG的
1.stdafx.h 加入如下内容.BCGCBProInc.h间接导入了lib. 2.应用程序类的父类由CWinApp改成CBCGPWinApp.构造函数增加如下代码: 3.对话框的父类有CDialo ...
- Qt 学习之路 2(15):标准对话框 QMessageBox
Qt 学习之路 2(15):标准对话框 QMessageBox 豆子 2012年9月18日 Qt 学习之路 2 40条评论 所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发.事实上, ...
随机推荐
- 【转】android小结(一)之menu
原文网址:http://zhouyunan2010.iteye.com/blog/1151215 android提供有三种menu类型 一.Options Menu(选项菜单) 这是一组item选项的 ...
- (2015多校第6场)HDU5361--In Touch (Dijkstra应用)
In Touch Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- redis 网络流程图 <一>
本来一直想好好读下redis源码.可是每次读了一点就不读了. 主要是没坚持每天都读. 隔几天看.就忘记前面的流程.就越来越不想看了. 很是蛋疼.这个还是要坚持读完的.打算这段时间都源码的时候.都大 ...
- 多线程面试题(Google)
有四个线程1.2.3.4.线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD.初始都为空.现要让四个文件呈如下格式: A:1 2 3 4 1 2.... ...
- jdk各个版本的特性
http://blog.csdn.net/mixiuali/article/details/8180100
- python遗传算法实现数据拟合
python据说功能强大,触角伸到各个领域,网上搜了一下其科学计算和工程计算能力也相当强,具备各种第三方包,除了性能软肋外,其他无可指摘,甚至可以同matlab等专业工具一较高下. 从网上找了一个使用 ...
- Swift学习——A Swift Tour 函数
Functions and Closures 函数和封闭性(闭包) Functions 函数的使用 Swift中的函数定义和OC中有明显的差别了,使用func定义函数,在括号里定义參数和类型,用 ...
- Face recognition using Histograms of Oriented Gradients
Face recognition using Histograms of Oriented Gradients 这篇论文的主要内容是将Hog算子应用到人脸识别上. 转载请注明:http://blog. ...
- arcpagelistarclist列表分页
arcpagelistarclist列表分页 (DedeCMS 5.6) 名称:arcpagelist 功能:通过制定arclist的pagesize及tagid属性,配合arcpagelist标签进 ...
- (原创)初识cordova(一)
在公司做项目,发现有人在做大项目使用了cordova技术.做的是昆山的项目.之前听说过phonegap,也测试过,但是感觉效率不是很好,就没怎么研究,后来看他们做的项目还不错,于是想试一试. 搭建开发 ...