PyQt4 を使用してユーザー インターフェイスを構築しようとしています。ポップアップするダイアログ ウィンドウを取得しました。'Ok' を押すと、何かを実行してから閉じます。残念ながら、私はそれを機能させることができないようです - 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_()
主に発生し続けるのは、「Dialog」が不明な変数であるというメッセージが accept() 関数で表示されるか、self.exec_() などを使用すると、exec_() が既知の属性ではないというメッセージが表示されることです。accept(self, Dialog) を実行しようとして、connect ステートメントに self.accept(Dialog) を入れると、クラッシュします。
ありとあらゆる助けをいただければ幸いです。