QT打开模态框后导致父窗口showfullscreen失效
时间: 2023-08-05 10:14:36 浏览: 236
在iframe中使bootstrap的模态框在父页面弹出问题
这个问题可能是因为模态对话框的事件循环阻塞了父窗口的事件循环,导致 `showFullScreen()` 方法失效。
一种解决方法是在打开模态对话框时,先将父窗口最小化,然后再打开模态对话框。这样,模态对话框就不会阻塞父窗口的事件循环了。
具体实现代码如下:
```
// 将父窗口最小化
parentWidget()->showMinimized();
// 打开模态对话框
QDialog dialog(this);
dialog.setModal(true);
dialog.exec();
// 恢复父窗口的状态
parentWidget()->showNormal();
parentWidget()->showFullScreen();
```
另外,如果你使用的是 Qt 5.11 或更高版本,也可以尝试使用 `QDialog::open()` 方法来打开模态对话框,该方法会自动处理父窗口的事件循环,不会出现上述问题。具体代码如下:
```
// 打开模态对话框
QDialog dialog(this);
dialog.setModal(true);
dialog.open();
```
阅读全文