温馨提示×

pyqt多页面切换功能怎么实现

小亿
106
2023-11-18 12:13:01
栏目: 编程语言

在PyQt中,可以使用QStackedWidget来实现多页面切换的功能。QStackedWidget是一个堆叠的容器,可以将多个页面放在其中,并可以通过切换当前页面来显示不同的页面。

以下是一个简单的示例代码,演示了如何使用QStackedWidget实现多页面切换功能:

from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QPushButton, QWidget, QStackedWidget
import sys

class Page1(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout()
        layout.addWidget(QPushButton('Go to Page 2', clicked=lambda: window.switch_page(1)))
        self.setLayout(layout)

class Page2(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout()
        layout.addWidget(QPushButton('Go to Page 1', clicked=lambda: window.switch_page(0)))
        self.setLayout(layout)

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.stacked_widget = QStackedWidget()
        self.setCentralWidget(self.stacked_widget)

        self.pages = [Page1(), Page2()]
        for page in self.pages:
            self.stacked_widget.addWidget(page)

        self.switch_page(0)

    def switch_page(self, index):
        self.stacked_widget.setCurrentIndex(index)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上面的示例中,我们定义了两个页面(Page1和Page2),并且分别在页面上放置了一个按钮。在按钮的clicked信号中,通过调用switch_page方法来切换页面。在MainWindow类中,我们创建了一个QStackedWidget,并将页面添加到其中。通过调用setCurrentIndex方法可以切换当前页面。在初始化时,默认显示第一个页面。

运行上述代码,你将看到一个窗口,其中有两个按钮,分别可以切换到另一个页面。

0