QMessageBox 中的 OK 按钮改为中文“确定”

有很多资料用于将 QMessageBox 的 OK 改为中文。但大多很麻烦。本文提供一个简便方法,用于定制 QMessageBox 的按钮,包括将其翻译成中文显示。

QMessageBox  对其内部的 Button 进行维护,用户可以使用 addButton() 方法,以及 removeButton() 方法添加或者移除按钮。每个 Button 都有个角色属性(enum QMessageBox::ButtonRole),用于标识该 Button 的用途。

角色属性列表如下:

Constant Value Description
QMessageBox::InvalidRole -1 The button is invalid.
QMessageBox::AcceptRole 0 Clicking the button causes the dialog to be accepted (e.g. OK).
QMessageBox::RejectRole 1 Clicking the button causes the dialog to be rejected (e.g. Cancel).
QMessageBox::DestructiveRole 2 Clicking the button causes a destructive change (e.g. for Discarding Changes) and closes the dialog.
QMessageBox::ActionRole 3 Clicking the button causes changes to the elements within the dialog.
QMessageBox::HelpRole 4 The button can be clicked to request help.
QMessageBox::YesRole 5 The button is a "Yes"-like button.
QMessageBox::NoRole 6 The button is a "No"-like button.
QMessageBox::ApplyRole 8 The button applies current changes.
QMessageBox::ResetRole 7 The button resets the dialog‘s fields to default values.

因此,用户可以使用 addButton() 和 removeButton() 方法,结合角色属性,来自定义 QMessageBox 的Button。

另外,用户可以通过 button() 或者 buttons() 方法获得“按键”或者“按键列表”。

QMessageBox 还提供了一个复杂的构造函数,用于在创建消息对话框时就对其进行定制,改构造函数原型如下:

QMessageBox::QMessageBox(Icon icon, const QString & title, const QString & text, StandardButtons buttons = NoButton, QWidget * parent = 0, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint)

因此,我们得到了一个将 “OK” 按键变成“确定”按键的最简单思路:使用 button() 方法获得 QAbstractButton 按键,然后使用 QAbstractButton 的 setText() 方法将其重新命名为“确定”,示例代码如下:

    WrrMsg = new QMessageBox(QMessageBox::NoIcon, title, msg, QMessageBox::Ok, 0);
    if(NULL!=WrrMsg->button(QMessageBox::Ok))
    {
        WrrMsg->button(QMessageBox::Ok)->setText("确 定");
    }

其中,title为QString类型的窗口标题,msg为QString类型的消息内容,QMessageBox()具体信息请参见Qt的相关帮助文档。

http://blog.csdn.net/desert187/article/details/40302049

时间: 2024-10-24 22:39:45

QMessageBox 中的 OK 按钮改为中文“确定”的相关文章

QMessageBox 弹出框上的按钮设置为中文

Qt 默认的弹出框上的按钮式英文,虽然也知道是什么意思,但终究不如中文看着顺眼. QMessageBox box(QMessageBox::Warning,"标题","弹出框按钮更改为中文!"); box.setStandardButtons (QMessageBox::Ok|QMessageBox::Cancel); box.exec (); 弹出效果: 在网上查了很多资料,有各种各样的方法,弄得我晕头转向,毕竟我接触Qt才不过一个月.不过在我坚持不懈的努力下,总

QMessageBox中按钮的汉化

方法一:直接添加汉语按钮: 1 QMessageBox mess(QMessageBox::Question, "删除提示", "确认删除所选组件?", NULL); 2 QPushButton *okButton = mess.addButton(tr("确定"), QMessageBox::AcceptRole); 3 QPushButton *cancelButton = mess.addButton(tr("取消"),

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

1 : 修改DX 提示框中的英文字符 1 /// <summary> 2 /// 重写DX弹出框 英文变为中文 3 /// </summary> 4 public class CHS : DevExpress.XtraEditors.Controls.Localizer 5 { 6 public override string GetLocalizedString(DevExpress.XtraEditors.Controls.StringId id) 7 { 8 switch (

Visual Studio Code怎么改成中文?

Visual Studio Code简称:VS Code是微软出品的一款免费代码编辑器,支持Windows.Mac和Linux等平台.初次安装或升级后,打开软件“Visual Studio Code”界面是英文,如何将Visual Studio Code设置成中文或其它语言呢?赶紧跟小编一起去看看吧! https://www.macdown.com Visual Studio Code中文设置方法 首先下载Visual Studio Code for Mac 2.打开Visual Studio

[转载](iPhone开发)Bundle Display Name 改为中文。ap

原文地址:(iPhone开发)Bundle Display Name 改为中文.app显示为中文作者:小新 要先在info的Localizations加入Chinese(zh-Hant) 再進到infoplist.strings裡面改 1. 新增"InfoPlist.strings"多國語言檔 2. 在多語言檔中加入CFBundleDisplayName = "中文AppName"; (雙引號中換成各語言顯示的名稱) 3. 在Info.plist選單中勾選"

TortoiseSVN怎么汉化,TortoiseSVN怎么改成中文

TortoiseSVN很多公司都在用,但是有时候总感觉是英文的不太好用.那么TortoiseSVN怎么汉化,TortoiseSVN怎么改成中文呢?来看看小编的介绍吧. 工具/原料 TortoiseSVN 方法/步骤 首先来看一下TortoiseSVN安装好之后的界面,是英文的. 2.想要改成中文,就要先找到TortoiseSVN的汉化包,这个在官网是有的. 打开TortoiseSVN官网的下载界面,会看到有中文简体和繁体的两个版本,而且还区分32位和64位,根据需要下载即可. 下载完成后双击进行

设计趋势:网页设计中的幽灵按钮

幽灵按钮——那些透明的.可点击的物体——忽然间就变得无处不在.以狂风暴雨之势席卷正网页设计领域.谁能想到,像按钮这么简单的事物,能够改变我们看待网页设计的方式? 参考:预测网页设计趋势 什么是幽灵按钮? 幽灵按钮有着最简单的扁平外形——正方形.矩形.圆形.菱形——没有填充色,只有一条淡淡的轮廓.除了外框和文字,它完完全全(或者说几乎完全)透明.(因此得名“幽灵”) 这些按钮通常比网页上传统的可点击按钮大,也被置于显要位置,例如屏幕的正中央. 各种类型的网站(包括移动APP)中都能发现幽灵按钮的身

VS2010中如何将动态链接库改成静态链接库

VS2010中如何将动态链接库改成静态链接库 VS2010静态编译生成的.exe可执行文件,可以免安装免DLL在其他电脑直接运行. 静态编译:就是在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖动态链接库. 1. 编译实现方式有两种 [1]debug方式的静态链接: 设置: (1)项目 -> 配置属性->常规->MFC的使用:在静态库中使用MFC(如果有使用MFC). (2)项目 -> 配置

iOS开发中如何保存按钮的状态

在iOS开发中我们经常会需要保存某个按钮的状态,比如很多设置选项中的UISwitch按钮的开关,比如一些按钮的选中与否等等,今天项目中有一个需求是要保存自动登录按钮的选中状态,想要实现这个功能,可以用归档来完成. 首先需求图: 我需要记录自动登录按钮的状态,若用户选择了下次自动登录,那么程序退出再次启动这个按钮仍然是选中状态. 首先,我们需要监听按钮的点击事件,因为在点击事件里面我们能够拿到按钮的状态. 通过下面代码,存储选中状态. - (IBAction)autologinClick:(UIB