将QT标准对话框由英文显示为中文

如何将Qt自带的对话框显示为中文(或英文)?

需求来源:

项目是中英文系统,所以在项目切换到中文时,qt自带的对话框也显示中文,而不是OK Yes No等。
在这里插入图片描述
在这里插入图片描述

方法1:将QMessageBox的按钮显示中文

void Widget::on_btMessage_clicked()
{
    QMessageBox box(QMessageBox::Warning, tr("警告"), tr("不能点击这个按钮!"));
    QMessageBox.setStandardButtons(QMessageBox::Ok);
    box.setButtonText(QMessageBox::Ok, tr("确定"));
    box.exec();
}

效果图:
在这里插入图片描述
缺点: 当使用的QMessageBox量比较大时,这个方法不太方便,代码量会很多。是一个比较简单,但也是比较笨的方法。

方法2: 载入QT的中文 (英文)

在Qt的安装目录下找translations,我的路径为D:\Qt\Qt5.6.3\5.6.3\mingw49_32\translations(仅作为参考);找到qt_en.qm和 qt_zh_CN.qm( qt_zh_CN.ts).qt_zh_CN.qm文件就是我们需要的标准对话框的翻译文件。若果有翻译不齐全的,可以修改qt_zh_CN.ts文件翻译一下,重新生成.qm文件即可。
重点: 应用程序加载qt_zh_CN.qm文件

#include "widget.h"
#include <QApplication>
#include <QTranslator>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTranslator qt_translator; //使用QTranslator加载qm文件
    bool IsLoad = qt_translator.load(":/lang/zh_CN"); //该路径是工程资源文件路径 zh_CN 是qt_zh_CN.qm的别名(ps可替换成绝对路径或相对路径)
    if(IsLoad){
         a.installTranslator(&qt_translator); //加载qt自带的翻译文件
    }
    Widget w;
    w.show();
    return a.exec();
}

效果图:
在这里插入图片描述
在这里插入图片描述

参考文献

1、翻译资源:https://code.qt.io/cgit/qt/qttranslations.git/tree/translations
2、参考博客: https://blog.csdn.net/libaineu2004/article/details/19030129
3、其它资源:https://download.csdn.net/download/weixin_40314351/12412987

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值