2011-04-12 100 views

回答

6

調用mainwindow2.show()應該爲你工作。你能給出一個更完整的代碼示例嗎?其他地方可能有問題。

編輯: 更新代碼以顯示如何在打開和關閉其他窗口時隱藏和顯示窗口的示例。

from PyQt4.QtGui import QApplication, QMainWindow, QPushButton, \ 
      QLabel, QVBoxLayout, QWidget 
from PyQt4.QtCore import pyqtSignal 

class MainWindow1(QMainWindow): 
    def __init__(self, parent=None): 
     QMainWindow.__init__(self, parent) 
     button = QPushButton('Test') 
     button.clicked.connect(self.newWindow) 
     label = QLabel('MainWindow1') 

     centralWidget = QWidget() 
     vbox = QVBoxLayout(centralWidget) 
     vbox.addWidget(label) 
     vbox.addWidget(button) 
     self.setCentralWidget(centralWidget) 

    def newWindow(self): 
     self.mainwindow2 = MainWindow2(self) 
     self.mainwindow2.closed.connect(self.show) 
     self.mainwindow2.show() 
     self.hide() 

class MainWindow2(QMainWindow): 

    # QMainWindow doesn't have a closed signal, so we'll make one. 
    closed = pyqtSignal() 

    def __init__(self, parent=None): 
     QMainWindow.__init__(self, parent) 
     self.parent = parent 
     label = QLabel('MainWindow2', self) 

    def closeEvent(self, event): 
     self.closed.emit() 
     event.accept() 

def startmain(): 
    app = QApplication(sys.argv) 
    mainwindow1 = MainWindow1() 
    mainwindow1.show() 
    sys.exit(app.exec_()) 

if __name__ == "__main__": 
    import sys 
    startmain() 
+0

謝謝灰色終於完成了。但我想使window1禁用和window2啓用和當window2關閉然後window1成爲renable – 2011-04-12 10:35:53

+0

我已經更改了代碼,以便當第二個QMainWindow顯示第一個隱藏。當第二個QMainWindow關閉時,第一個將再次顯示。 – 2011-04-12 11:48:08

+0

你們終於做到了非常感謝gary – 2011-04-12 14:17:39

相關問題