此篇文章参考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标准对话框的文字(例如,英文改成中文)的更多相关文章

  1. Qt标准对话框按钮文字等设置为中文

    问题描述:QMessageBox.QColorDialog等标准对话框按钮显示都是英文 设置中文方法如下: 1)拷贝Qt安装目录下的qt_zh_CN.qm和qt_zh_CN.ts文件到工程目录中 2) ...

  2. qt中qlineedit和qtextedit右键菜单翻译成中文

    没有linguist和lupdate等命令需要安装Linguist: 在Terminal中输入: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtco ...

  3. 【Qt开发】Qt标准对话框之QMessageBox

    好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新.而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework.好了,现 ...

  4. Qt标准对话框之QColorDialog

    Qt中提供了一些标准的对话框,用于实现一些常用的预定义功能,比如本节中将要介绍的颜色对话框——QColorDialog. 在不同的系统平台下,颜色对话框的显示效果可能会有所不同,主要因系统主题风格而异 ...

  5. qt 标准对话框

    if (QMessageBox::Yes == QMessageBox::question(this, tr("Question"),                        ...

  6. 修改DevExpress中英文提示,将英文改为中文

    1 : 修改DX 提示框中的英文字符 /// <summary> /// 重写DX弹出框 英文变为中文 /// </summary> public class CHS : De ...

  7. Qt中的标准对话框之QMessageBox

    1. Qt标准对话框 Qt为开发者提供了一些可复用的对话框类型 Qt提供的可复用对话框全部继承自QDialog类 Qt中的对话框的使用方式和QDialog完全一致 2. 标准对话框的使用步骤 ①定义对 ...

  8. 如何将基于对话框的MFC工程改成基于BCG的

    1.stdafx.h 加入如下内容.BCGCBProInc.h间接导入了lib. 2.应用程序类的父类由CWinApp改成CBCGPWinApp.构造函数增加如下代码: 3.对话框的父类有CDialo ...

  9. Qt 学习之路 2(15):标准对话框 QMessageBox

    Qt 学习之路 2(15):标准对话框 QMessageBox  豆子  2012年9月18日  Qt 学习之路 2  40条评论 所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发.事实上, ...

随机推荐

  1. 【转】[c/c++ ]字节序与大小端转换--不错

    原文网址:http://blog.csdn.net/kuai0705/article/details/20841133 注明: 以下内容均为学习内容整理,记录,便于自己学习,并非完全意义上的自产,如有 ...

  2. [LeetCode] 21. Merge Two Sorted Lists 解题思路

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  3. 将vs2012建的项目转换为vs2010项目

    vs2012建的项目vs2010打不开,但vs2010的项目vs2012能打开,所以我觉得vs2012没有对解决方案进行重大的调整,尝试修改了一下.sln文件,使用vs2010就能打开了,方法如下: ...

  4. hdu 1253 胜利大逃亡 (三维简单bfs+剪枝)

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. Selenium2(webdriver)入门之TestNG的使用

    一.在Eclipse中安装TestNG 1.打开eclipse-->help-->Install New Software-->Add,输入Name和Location后,点击OK. ...

  6. hdu1869六度分离(dijkstra)

    Problem Description 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相 ...

  7. SQL Profile 总结(一)

    一.前提概述 在介绍SQL Profile之前,不得不说的一个工具就是SQL Tuning Advisor:这个工具是从Oracle 10g開始引入,它的任务就是分析一个指定的SQL语句,并建议怎样使 ...

  8. Java基础知识强化68:基本类型包装类之Character概述和Character常见方法

    1. Character概述: public final class Character extends Object implements Serializable,Comparable<Ch ...

  9. ubuntu14.04 install flow.

    打开虚拟机,点击菜单上的“文件”,选择新建虚拟机,如下图所示: 注释:这里选择自定义安装,点击下一步. 这里我的虚拟机版本最新是10的,就选最新的,然后点击下一步,如下图: 这里选择要安装的Ubunt ...

  10. Eclipse 添加快捷方式

    1.在/usr/share/applications创建一个desktop文件,命名为eclipse.desktop 文件内容如下 [Desktop Entry]Name=EclipseType=Ap ...