Qt弹出对话框“QMessageBox“的按钮名称改为中文

本文介绍了如何使用QMessageBox在Qt中创建对话框,并展示了如何通过`tr`函数将默认英文按钮改为中文,以及设置自定义按钮文字。通过实例代码演示了如何根据用户选择执行不同操作。

1.QMessageBox

用默认的QMessageBox弹出的按钮都是英文状态,可以通过下面两种方式更改按钮名称,,通常tr(“xx”)都是设置英文,通过翻译设置为中文。
实现效果:
在这里插入图片描述
实现代码:

void QTestWidget::on_pushButton_ShowMsgBox_clicked()
{
   
   
    QMessageBox mm(QMessageBox::Question,QString(tr
Qt 开发中,若要将 QMessageBox 弹出对话框的英文按钮改为中文,可采用以下几种方法: ### 方法一:直接修改按钮文本 通过 `button` 方法获取按钮对象,再使用 `setText` 方法修改按钮显示的文本。示例代码如下: ```cpp #include <QMessageBox> // 创建一个question弹出对话框,添加两个按钮:Yes和No QMessageBox *msgBox = new QMessageBox(QMessageBox::Question, tr("对话框标题"), tr("对话框内容"), QMessageBox::Yes | QMessageBox::No); // 将原本显示“Yes”的按钮改为显示“是” msgBox->button(QMessageBox::Yes)->setText("是"); // 将原本显示“No”的按钮改为显示“否” msgBox->button(QMessageBox::No)->setText("否"); // 弹出对话框 msgBox->exec(); ``` 上述代码创建了一个带有 “Yes” 和 “No” 按钮的问题对话框,并将这两个按钮的显示文本分别改为 “是” 和 “否” [^1]。 ### 方法二:使用 `setButtonText` 方法 使用 `setButtonText` 方法可以更方便地修改按钮文本。示例代码如下: ```cpp #include <QMessageBox> void QTestWidget::on_pushButton_ShowMsgBox_clicked() { QMessageBox mm(QMessageBox::Question, QString(tr("努力脱单")), QString(tr("你愿意嫁给我吗!")), QMessageBox::Yes | QMessageBox::No); mm.setButtonText(QMessageBox::Yes, QString(tr("愿意"))); mm.button(QMessageBox::No)->setText(tr("滚蛋")); int Ret = mm.exec(); if (Ret == QMessageBox::Yes) { qDebug() << "太好了!"; } } ``` 此代码创建了一个问题对话框,使用 `setButtonText` 方法将 “Yes” 按钮文本改为 “愿意”,并使用 `button` 方法结合 `setText` 将 “No” 按钮文本改为 “滚蛋” [^3]。 ### 方法三:创建时定制按钮文本 对于 “OK” 按钮改为 “确定”,可以在创建消息对话框时进行定制。示例代码如下: ```cpp #include <QMessageBox> { QMessageBox mymessage(QMessageBox::Warning, title, message); mymessage.setStandardButtons(QMessageBox::Ok); mymessage.setButtonText(QMessageBox::Ok, QString("确 定")); mymessage.exec(); } ``` 该代码创建了一个警告对话框,将标准按钮设置为 “OK”,并将其文本改为 “确定” [^5]。 ### 方法四:添加自定义按钮 可以通过添加自定义按钮并设置其文本为中文来实现。示例代码如下: ```cpp #include <QMessageBox> // 带返回值的窗口 int MyMessageBox2(QString title, QString message) { QMessageBox mymessage(QMessageBox::Critical, title, message); QPushButton *btnYes = mymessage.addButton(("是"), QMessageBox::YesRole); QPushButton *btnNo = mymessage.addButton(("否"), QMessageBox::NoRole); mymessage.exec(); if ((QPushButton*)mymessage.clickedButton() == btnYes) { return 1; } return 0; } ``` 此代码创建了一个关键对话框,添加了 “是” 和 “否” 两个自定义按钮,并根据用户点击返回相应的值 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值