如何删除qmessage中自带的按钮

如何删除qmessage中自带的按钮,第1张

QMessage是一个强大的Qt C++库,用于创建自定义对话框、提示框和消息框等。要删除QMessage中自带按钮,您可以使用QMessageBox类的setStandardButtons()函数来指定您想要显示的标准按钮,并将其设置为空值。

以下是实现步骤:

1 创建一个QMessageBox对象

2 使用setStandardButtons()函数设置空值来删除所有标准按钮。例如,如果您想删除Yes和No按钮,可以在以下方式使用该函数:msgBox->setStandardButtons(QMessageBox::NoButton);

3 可以使用addButton()函数向消息框添加自定义按钮。例如,如果您想添加一个“取消”按钮,可以使用以下代码:msgBox->addButton(tr("Cancel"), QMessageBox::RejectRole);

4 最后,使用exec()函数来显示消息框。

下面是完整的示例代码:

```

QMessageBox msgBox = new QMessageBox(this);

msgBox->setIcon(QMessageBox::Warning);

msgBox->setText(tr("Are you sure you want to delete this item"));

msgBox->setStandardButtons(QMessageBox::NoButton);

msgBox->addButton(tr("Delete"), QMessageBox::AcceptRole);

msgBox->addButton(tr("Cancel"), QMessageBox::RejectRole);

int ret = msgBox->exec();

```

通过上述步骤,您可以成功地删除QMessage中自带的按钮并添加自定义按钮。

msgBox->setWindowFlags(Qt::Widget | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowStaysOnTopHint);

试试这个

msgBox->setWindowFlags(Qt::Widget);

MAC上我试了这两个都可以

我在开发版上运行都直接就没有标题栏

楼主有没试清楚啊,我用QWidget为父窗口用QDialog来exec,但不管我怎么试setWindowFlags(Qt::FramelessWindowHint)QDialog还是有置顶效果,而且别的窗口也失效了。(我用的是Qt47)

在代码种直接去除OK按键是不行的,因为这颗ok还没生成。ok按键生成的地方是在执行exec的时候qt发现没有任何按键就会默认生成一个ok按键;

所以我的结局办法是,先添加一个按键然后,然后去除按键,这样可以完美结局问题,代码如下;

QMessageBox msgBox;

msgBoxsetText("The document has been modified");

msgBoxaddButton(QMessageBox::Ok);

msgBoxbutton(QMessageBox::Ok)->hide();

msgBoxexec();

仅供参考

以上就是关于如何删除qmessage中自带的按钮全部的内容,包括:如何删除qmessage中自带的按钮、Qt 去掉QMessageBox上的标题栏、QT中Dialog去掉标题后就不能像QMessageBox那样让其它窗口失效,怎么办才好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10141353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存