如何在 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 天。
在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 天。