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那样让其它窗口失效,怎么办才好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)