messagebox

本文介绍了QMessageBox的使用,包括显示简单消息、设置自定义按钮和不同类型的弹窗。通过示例代码展示了如何创建带有默认操作的确认对话框,以及如何自定义按钮和调整图标来增强用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、最简单的
QMessageBox msgBox;
msgBox.setText(“The document has been modified.”);
msgBox.exec(); //call exec() to show the message.

这里写图片描述
2、升级版
QMessageBox msgBox;
msgBox.setText(“The document has been modified.”);
msgBox.setInformativeText(“Do you want to save your changes?”);
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save); //设置默认操作
int ret = msgBox.exec();
switch (ret) {
case QMessageBox::Save:
// Save was clicked
break;
case QMessageBox::Discard:
// Don’t Save was clicked
break;
case QMessageBox::Cancel:
// Cancel was clicked
break;
default:
// should never be reached
break;
}

这里写图片描述

//系统提供的按键
Qt提供的按键种类

不够用肿么办?想中文肿么办?
自定义按钮

QMessageBox msgBox;
QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);
QPushButton *loginButton = msgBox.addButton(QString::fromUtf8("登录"), QMessageBox::ActionRole);//指定名称,类型(暂时不知道这个类型有啥用)
msgBox.exec();

 if (msgBox.clickedButton() == connectButton) 
 {
         // connect
 } 
 else if (msgBox.clickedButton() == abortButton)
 {
         // abort
 }
 else
 {
         //login
 }

这里写图片描述

3、四种弹窗类型
QMessageBox supports four predefined message severity levels, or message types, which really only differ in the predefined icon they each show.
这里写图片描述

用法举例: //标题
int ret = QMessageBox::warning(this, tr(“My Application”),
tr(“The document has been modified.\n” //提示语
“Do you want to save your changes?”),
QMessageBox::Save | QMessageBox::Discard
| QMessageBox::Cancel, //按键选项
QMessageBox::Save); //默认选项

这里写图片描述

//最终解答
QMessageBox box;
box.setWindowTitle(tr(“警告”));
box.setIcon(QMessageBox::Warning);
box.setText(curFile + tr(“尚未保存,是否保存?”)); box.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
if(box.exec() == QMessageBox::Yes) //如果选择保存文件,则执行保存操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值