pyqt5 页面跳转
时间: 2023-07-27 15:26:52 浏览: 115
在 PyQt5 中,可以使用 QStackedWidget 控件来实现页面跳转功能。
QStackedWidget 是一个堆叠窗口控件,可以显示多个子控件,但是只有一个子控件是可见的。通过在子控件之间切换,可以实现页面跳转的效果。
下面是一个简单的例子,展示了如何使用 QStackedWidget 实现页面跳转功能:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel, QStackedWidget
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# 创建 QStackedWidget 控件
self.stacked_widget = QStackedWidget()
# 创建两个页面并添加到 stacked_widget 控件中
self.page1 = Page1()
self.stacked_widget.addWidget(self.page1)
self.page2 = Page2()
self.stacked_widget.addWidget(self.page2)
# 创建按钮,用于切换页面
self.button1 = QPushButton("Page 1")
self.button1.clicked.connect(self.show_page1)
self.button2 = QPushButton("Page 2")
self.button2.clicked.connect(self.show_page2)
# 创建垂直布局,并将按钮和 stacked_widget 控件添加到布局中
layout = QVBoxLayout()
layout.addWidget(self.button1)
layout.addWidget(self.button2)
layout.addWidget(self.stacked_widget)
self.setLayout(layout)
def show_page1(self):
# 切换到第一个页面
self.stacked_widget.setCurrentWidget(self.page1)
def show_page2(self):
# 切换到第二个页面
self.stacked_widget.setCurrentWidget(self.page2)
class Page1(QWidget):
def __init__(self):
super().__init__()
# 创建标签,并将其添加到页面中
self.label = QLabel("This is Page 1")
layout = QVBoxLayout()
layout.addWidget(self.label)
self.setLayout(layout)
class Page2(QWidget):
def __init__(self):
super().__init__()
# 创建标签,并将其添加到页面中
self.label = QLabel("This is Page 2")
layout = QVBoxLayout()
layout.addWidget(self.label)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
运行上述代码,会显示一个窗口,其中包含两个按钮和一个 QStackedWidget 控件。单击不同的按钮,可以切换到不同的页面。
阅读全文