2014-04-04 166 views
0

我有2個窗體,form_1和form_2(在另一個類和文件中),我將從form_1打開form_2和按鈕,如何在Pyqt中創建它?如何從pyqt的第一個窗口打開第二個窗口?

代碼form_1:

def retranslateUi(self, MainWindow): 
    QtCore.QObject.connect(self.bt_form1,  QtCore.SIGNAL(_fromUtf8("clicked()")), self.show_form2()) 
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) 
    self.bt_form1.setText(_translate("MainWindow", "FORM_1", None)) 

def show_form2(self): 
    self.form2 = form2(self) # in here ?????? 

回答

0

IM仍然很新的PyQt的,但我認爲你可以做這樣的

def show_form2(self): 
    newDialog = uic.loadUi(r"uifile.ui") 
    newDialog.show() 

,或者如果你的子類,請確保你導入它,如果它在另一個文件中,並使用

def show_form2(self): 
    newDialog = subDialog.subDialog() 
    newDialog.show() 

編輯 - 噢,並確保您將它連接到t他點擊按鈕

self.bt_form1.clicked.connect(self.show_form2) 
+0

我不 高清show_form2(個體經營)瞭解有關SubDiaolog: newDialog = subDialog.subDialog() newDialog.show() 是什麼意思? 我試過但顯示的描述「對象沒有屬性」顯示「 – Bekti

+0

子對話框將是您的窗體2 – SketchyManDan

+0

我有問題n顯示」對象沒有屬性「顯示」「,爲什麼? – Bekti

0
class Main(QMainWindow): 

    def __init__(...) 

    def retranslateUi(self, MainWindow): 
     QtCore.QObject.connect(self.bt_form1,  QtCore.SIGNAL(_fromUtf8("clicked()")), self.show_form2()) 
     MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) 
     self.bt_form1.setText(_translate("MainWindow", "FORM_1", None)) 

    def show_form2(self): 
     self.form2 = Form2(self) 
     self.form2.show() 

你Form2的代碼應類似於此:

class Form2(QDialog): 

    def __init__(self, parent=None) .... 

    # do whatever # 
+0

我試過但它,但錯誤和出現'Ui_MainWindow'對象沒有'show'屬性,你有沒有理解nd關於這個問題? – Bekti

+0

如果沒有看到其他表單的代碼,我們真的無法幫助。 'QDialog()'和'QMainWindow()'類肯定有'.show()'方法。另外,請不要傳遞'parent'屬性。 –

相關問題