在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方法可以切换当前页面。在初始化时,默认显示第一个页面。
运行上述代码,你将看到一个窗口,其中有两个按钮,分别可以切换到另一个页面。