如何在 PyQt5 中为 dialog.exec 生成接受信号

How to generate accept signal for dialog.exec in PyQt5

在main.py

returnCode = self.rouDialogForm.exec_()
if returnCode == QtWidgets.QDialog.Accepted:
    print(float(self.rouDialogForm.ui.leStartMhz.text()))

if returnCode ==QtWidgets.QDialog.Rejected:
    print(float(self.rouDialogForm.ui.leStopMhz.text()))

在rouDialog.py

def setupUi(self, Dialog):
    #GUI CODE
    self.retranslateUi(Dialog)
    QtCore.QMetaObject.connectSlotsByName(Dialog)
    self.butConnect.clicked.connect(self.acceptDialog)

def acceptDialog(self):
    self.accept()

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        #Label set texts are here
        import myResources_rc

我可以捕获单击 window 关闭图标后生成的 Rejected 信号,并从行编辑中打印出所需的文本。 但是当我按下将生成接受信号(但连接)的按钮时,程序就会崩溃 运行 时间。

我尝试了不同的语法和不同的导入来使其工作。

尝试 #1:在 rouDialog.py 而不是 self.accept()

self.done(QtWidgets.QDialog.Accepted)

另一种尝试:在 rouDialog.py 而不是 self.accept()

super(Ui_Dialog,self).accept()

另一个:

QtWidgets.QDialog.accept(self)

已解决: 将此添加到我的 rouDialog.py 解决了我所有的 problems.Hope 它将在将来帮助其他人。

    self.butReadout.clicked.connect(Dialog.accept)

    @QtCore.pyqtSlot()
    def accept(self):
        pass

编辑:我无法将我的答案标记为正确,因为我需要等待 2 天。