【发布时间】:2019-09-27 19:29:50
【问题描述】:
我遇到了以下问题:
- 用户按下“Ctrl+N”进入函数 MainWindow::newAction()
- 在 MainWindow::newAction() 中,创建一个 QDialog dlg(centralWidget()) 并调用 dlg.exec()
- dlg 打开时,用户再次按下“Ctrl+N”
结果是 dlg 永远不会被删除(只有在 centralWidget() 被删除后才会被删除)。
调用栈是这样的:
MainWindow::newAction ()
...
MainWindow::newAction()
我想知道如何处理这种情况。我希望在我们再次进入函数 newAction() 时删除第一次调用 newAction() 的所有本地对话框变量。
【问题讨论】:
-
试着让你的对话模式化。对话框打开时,用户将无法与您的主窗口进行交互。