如何在 PyQt4 中显示 QDialog 时执行回调?

Jua*_*oto 3 qt dialog pyqt

我希望能够在 PyQt4 中显示 QDialog 时执行回调,最好是通过信号/插槽机制。查看QDialog的 PyQt 文档,我找不到将要运行的插槽附加到的正确信号。

有什么好的方法可以做到这一点?

ekh*_*oro 5

如果您希望每次显示对话框时都发出一个信号,您可以创建一个这样的类:

class Dialog(QtGui.QDialog):
    dialogShown = QtCore.pyqtSignal()

    def showEvent(self, event):
        super(Dialog, self).showEvent(event)
        self.dialogShown.emit()
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

    self.dialog = Dialog()
    self.dialog.dialogShown.connect(self.handleDialogShown)
Run Code Online (Sandbox Code Playgroud)