尝试使用 PyQt4 构建用户界面。弹出一个对话框窗口,我希望它做一些事情,然后在按下“确定”时关闭。不幸的是,我似乎无法让它工作 - 尝试了 Dialog.exec_()、Dialog.close()、self.exec_()、self.close() 的各种组合,向 Dialog 发出“已接受”信号.accept 等。到目前为止,没有任何效果,我不太清楚为什么。这是它的代码:
这样初始化的对话框窗口;
def begin_grab(self):
self.GrabIm=qtg.QDialog(self)
self.GrabIm.ui=Ui_Dialog()
self.GrabIm.ui.setupUi(self.GrabIm)
self.GrabIm.show()
对话窗口;
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName(_fromUtf8("Dialog"))
...
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), self.accept)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), Dialog.reject)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def accept(self):
if self.radioButton.isChecked()==True: #assume it is true
#Call continuous grabber
print "Grabbing continuously"
Dialog.exec_() #Close it here
else:
#Call trigger server
print "Grabbing triggered"
self.exec_()
不断发生的主要事情是在 accept() 函数中显示“Dialog”是未知变量的消息,或者如果我使用 self.exec_() 或类似的,它说 exec_() 不是已知属性。如果我尝试做accept(self, Dialog),并将self.accept(Dialog) 放在connect 语句中,它也会崩溃。
任何和所有的帮助将不胜感激。