qmessagebox::question()标题栏的x没效果
时间: 2024-03-20 19:43:48 浏览: 58
QMessageBox::question()是一个带有标题栏和关闭按钮的窗口,如果点击标题栏的X按钮,会自动关闭窗口。如果你的代码中标题栏的X按钮没有效果,可能是因为你没有设置QMessageBox的父窗口,或者设置的父窗口已经关闭了。
在使用QMessageBox时,可以通过指定父窗口来控制消息框的显示位置和关联性。如果没有指定父窗口,QMessageBox会自动创建一个父窗口,但是这个父窗口可能会被隐藏或关闭,导致消息框无法正常工作。因此,建议在创建QMessageBox时指定一个有效的父窗口。
例如,下面的代码创建了一个QMainWindow作为QMessageBox的父窗口,并将其设置为QMessageBox的parent:
```cpp
#include <QApplication>
#include <QMainWindow>
#include <QMessageBox>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow mainWindow;
mainWindow.show();
QMessageBox::question(&mainWindow, "Title", "Message");
return a.exec();
}
```
在这个例子中,我们创建了一个QMainWindow作为QMessageBox的父窗口,并将其传递给QMessageBox::question()函数的第一个参数。这样设置之后,即使点击标题栏的X按钮,QMainWindow仍然会保持打开状态,QMessageBox也不会意外关闭。
阅读全文