需要在Pyqt5中的2个主窗口之间切换

时间:2019-03-14 12:54:47

标签: python layout pyqt pyqt5

我创建了2个单独的MainWindow(在2个不同的程序中)。现在,我需要在这两个窗口之间切换。示例:单击MainWindow1中的按钮时,应打开MainWindow2,并应关闭MainWindow1,反之亦然。请帮忙!

1 个答案:

答案 0 :(得分:0)

尝试一下:

import sys
from PyQt5 import Qt

class MainWindow1(Qt.QMainWindow):
    def __init__(self):
        Qt.QMainWindow.__init__(self)

        self.mainWindow1()


    def mainWindow1(self):
        self.setFixedSize(300, 300)
        self.setStyleSheet('background-color : rgb(255,255,255);')
        self.setWindowTitle('MainWindow1')

        self.pushButton = Qt.QPushButton(self)
        self.pushButton.setStyleSheet('background-color: rgb(255,0,0); color: #fff')
        self.pushButton.setText('Click me!')
        self.pushButton.clicked.connect(self.A)

    def A(self):
        self.cams = MainWindow2()
        self.cams.show()
        self.close()

class MainWindow2(Qt.QMainWindow):
    def __init__(self):
        Qt.QMainWindow.__init__(self)

        self.setFixedSize(500, 500)
        self.setStyleSheet('background-color : rgb(255,0,0);')
        self.setWindowTitle('MainWindow2')

        self.pushButton = Qt.QPushButton(self)
        self.pushButton.setStyleSheet('background-color: rgb(0,0,255); color: #fff')
        self.pushButton.setText('Click me!')
        self.pushButton.clicked.connect(self.B)

    def B(self):
        self.cams = MainWindow1()
        self.cams.show()
        self.close()          


if __name__ == '__main__':
    app = Qt.QApplication(sys.argv)
    w   = MainWindow1()
    w.show()
    sys.exit(app.exec_())