欢迎访问宙启技术站
智能推送

PyQt5.QtWidgets实现多窗口应用:窗口的创建和切换

发布时间:2023-12-28 02:52:13

PyQt5.QtWidgets是一个用于创建窗口应用程序的模块。它提供了许多类来创建和管理窗口,包括QWidget、QMainWindow、QDialog等。下面是一个使用PyQt5.QtWidgets实现多窗口应用的例子,包括窗口的创建和切换。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel


class Window1(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Window 1")
        self.setGeometry(100, 100, 300, 200)

        layout = QVBoxLayout()
        self.setLayout(layout)

        self.label = QLabel("Window 1")
        layout.addWidget(self.label)

        button = QPushButton("Switch to Window 2")
        button.clicked.connect(self.switch_window)
        layout.addWidget(button)

    def switch_window(self):
        window2.show()
        self.hide()


class Window2(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Window 2")
        self.setGeometry(100, 100, 300, 200)

        layout = QVBoxLayout()
        self.setLayout(layout)

        self.label = QLabel("Window 2")
        layout.addWidget(self.label)

        button = QPushButton("Switch to Window 1")
        button.clicked.connect(self.switch_window)
        layout.addWidget(button)

    def switch_window(self):
        window1.show()
        self.hide()


app = QApplication(sys.argv)

window1 = Window1()
window2 = Window2()

window1.show()

sys.exit(app.exec_())

上述代码创建了两个窗口,Window1和Window2。Window1的布局中包含一个标签和一个按钮,当按钮被点击时,显示Window2并隐藏自己。Window2的布局也类似,当按钮被点击时,显示Window1并隐藏自己。

在主函数中,首先创建了一个QApplication实例,然后创建了两个窗口实例window1和window2。最后,显示window1并执行应用程序的主循环。

这是一个简单的多窗口应用程序的例子,展示了如何使用PyQt5.QtWidgets来创建和管理窗口。通过切换窗口的显示和隐藏,可以实现多个窗口之间的切换操作。