qmessagebox::question如何去掉右上角的x
时间: 2024-03-20 20:43:44 浏览: 165
Qt个人学习笔记整理
5星 · 资源好评率100%
QMessageBox的右上角的X是窗口的关闭按钮,如果要去掉这个关闭按钮,需要使用一些平台相关的API来实现,这样会比较麻烦。不过,可以通过设置QMessageBox的一些属性来达到类似的效果,例如:
```cpp
QMessageBox msgBox;
msgBox.setWindowTitle("My Title");
msgBox.setText("My Text");
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
msgBox.setDefaultButton(QMessageBox::No);
msgBox.setEscapeButton(QMessageBox::No);
msgBox.setWindowFlags(msgBox.windowFlags() & ~Qt::WindowCloseButtonHint);
int ret = msgBox.exec();
```
在这段代码中,我们使用了setWindowFlags()函数来设置QMessageBox的窗口标志。其中,我们使用了位运算符和~Qt::WindowCloseButtonHint来去掉关闭按钮。这样设置之后,QMessageBox就没有关闭按钮了,但是点击标题栏的X按钮或者使用Alt+F4仍然可以关闭窗口。因此,这种方法只是一种近似的解决方案,不能完全去掉右上角的X。
阅读全文