0
我需要通過主窗口(也在QtDesigned,因此是單獨的文件)上的按鈕槽調用窗體(用QtDesigner設計自定義對話框)。下面是相關代碼:似乎無法從mainWindow調用自定義對話框。 PySide
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.btn.clicked.connect(self.my_func)
def my_func(self):
form = Form_UI.Custom_Dialog()
if form.exec_():
print "successfully opened"
如何過我得到以下錯誤:
Traceback (most recent call last):
File "F:\myPath\code.py", line 27, in my_func
if form.exec_():
AttributeError: 'Custom_Dialog' object has no attribute 'exec_'
我不明白,因爲下面的代碼(使用內置的對話框)工作得很好:
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.btn.clicked.connect(self.my_func)
def my_func(self):
form = QtGui.QDialog()
if form.exec_():
print "successfully opened"
任何幫助,將不勝感激。提前致謝。
太棒了,我真的很感激它。謝謝。 – Ryan
但是,我不得不問,更好的做法(或慣例),在ui文件中導出它還是如上所述? – Ryan
@Ryan由於您不能編輯生成的文件,因爲再次調用pyuic4時會發生任何更改,我假設您的意思是「......編寫一個可以從'QDialog'和'Custom_Dialog'派生的類,或者設置爲以上」。除了普通[「單一責任規則」](http://en.wikipedia.org/wiki/Single_responsibility_principle)之外,沒有PyQt慣例可以在這兩種方法之間進行選擇,因此,基本上,如果您不需要添加任何邏輯到生成的對話框(相對複雜的用戶交互或驗證...),上面的代碼應該足夠了。 – alexisdm