python - QMainWindow关闭时如何关闭QDialog

标签 python pyqt pyqt4

我正在使用 PyQt,并且我有一个 QMainWindow,它在单击信号后生成一个 QDialog 窗口。我想要的是这个 QDialog 在我关闭 QMainWindow 后消失。我无法详细了解这个问题的文档和 C++ 版本。下面是代码:

from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys

class App:

    def mainGui(self):
        self.mainWin = QMainWindow()
        self.mainWin.setGeometry(200,200,500,432)
        self.mainWin.show()
        mainMenu = self.mainWin.menuBar()
        mainMenu.setNativeMenuBar(False)
        aboutMenu = mainMenu.addMenu('A&bout')
        helpButton = QAction(QIcon(),'Help',self.mainWin)
        helpButton.setShortcut('F4')
        helpButton.triggered.connect(self.helpPopup)
        aboutMenu.addAction(helpButton)

    def helpPopup(self):
        self.popup = QDialog()
        self.popup.setWindowTitle('Help')
        self.popup.setGeometry(800,200,300,500)
        self.popup.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    a = App()
    a.mainGui()
    sys.exit(app.exec_())

最佳答案

在 Qt 中,因此也在 PyQt 中,如果父级也死了,那么子级也将被传递为 QDialog 的父级到 self.mainWin:

self.popup = QDialog(self.mainWin)

关于python - QMainWindow关闭时如何关闭QDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48001210/

相关文章:

python - Django 自定义用户管理员 change_password

python - 信用卡号码验证器无法正常工作

python - 如何在 Python 3 中将 QImage(QPixmap) 转换为 PIL Image?

python - 如何在pyQt中调整QFileDialog的大小?

python - 如何创建带有标志修改的 QMessageBox 的子类?

python - 如何在此类外部使用类内部声明的变量?

python - 使用 Python 将 Unicode 写入文件

python - PyLatex 如何添加自定义usepackage

python - 未触发小部件的 "destroyed"信号 (PyQT)

python - 声子后端能力太窄