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

问题描述 投票:0回答:2

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

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

qt events pyqt signals-slots qdialog
2个回答
6
投票

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

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)

2
投票

我认为重写 showshowEvent 方法并将回调放在那里就可以了。

class MyDialog(QtGui.QDialog):
    def show(self):
        super(MyDialog, self).show()
        callbacks()
© www.soinside.com 2019 - 2024. All rights reserved.