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

时间:2014-11-25 18:57:08

标签: qt dialog pyqt

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

这样做的好方法是什么?

2 个答案:

答案 0 :(得分:4)

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

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

    def showEvent(self, event):
        super(Dialog, self).showEvent(event)
        self.dialogShown.emit()

然后像这样使用它:

    self.dialog = Dialog()
    self.dialog.dialogShown.connect(self.handleDialogShown)

答案 1 :(得分:1)

我认为可以覆盖showshowEvent方法并将回调放在那里。

class MyDialog(QtGui.QDialog):
    def show(self):
        super(MyDialog, self).show()
        callbacks()