【问题标题】:Need Switching between 2 Mainwindows in Pyqt5 [duplicate]需要在 Pyqt5 中的 2 个主窗口之间切换 [重复]
【发布时间】:2019-08-05 09:10:18
【问题描述】:

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

【问题讨论】:

  • 你的代码,请!

标签: python layout pyqt pyqt5


【解决方案1】:

试试看:

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_())

【讨论】:

  • 您不是在窗口之间切换,而是在创建相同类型的新窗口,这是非常不同的,因为当窗口状态切换时它会恢复,但创建时不会。跨度>
  • 非常感谢 eyllanesc... 但我担心的是我有 2 个窗口作为一个单独的程序....我怎样才能用 2 个不同的程序实现相同的效果... MainWindow1 的 EX 程序 1 和MainWindow2 的程序 2...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 2020-12-02
  • 1970-01-01
  • 2019-09-14
  • 1970-01-01
  • 2016-03-24
  • 2017-07-11
相关资源
最近更新 更多