2014-07-25 47 views
0

實現多個窗口如何給用戶之後打開一個新窗口的好方法點擊一個按鈕說明如下:在PyQt的

https://stackoverflow.com/a/21414775/1898982

這裏:

https://stackoverflow.com/a/13519181/1898982

class Form1(QtGui.QWidget, Ui_Form1): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setupUi(self) 
     self.button1.clicked.connect(self.handleButton) 
     self.window2 = None 

    def handleButton(self): 
     if self.window2 is None: 
      self.window2 = Form2(self) 
     self.window2.show() 

class Form2(QtGui.QWidget, Ui_Form2): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setupUi(self) 

我想開發一個由幾個步驟組成的GUI應用程序。一旦用戶點擊下一個,當前窗口關閉,另一個窗口打開。從技術上講,我可以像上面描述的那樣做:每個窗口打開一個新窗口。幾步後,這幾乎是嵌套。

有沒有更好的方法來做到這一點?

我想在我的主要控制流。事情是這樣的:

main() 
    window1 = win2() 
    window1.show() 
    wait until button in window1 is clicked, then 
    window1.close() 

    window2 = win2() 
    window2.show() 
    wait until button in window2 is clicked, then 
    window1.close() 
    .... 
+1

也許你想要一個'QWizard'? – Avaris

回答

0

我會建議使用QWizardQStackedWidget類來執行此任務。您可以使用這兩個類中的任何一個輕鬆地在小部件或窗口之間切換。請參閱QWizardQStackedWidget文檔。

0

Qt提供特殊部件對於這種情況,這稱爲QWidget。看它。它也在Qt4中可用。