pyqt5按钮跳转页面
时间: 2023-09-08 13:15:10 浏览: 125
pyqt5使用按钮进行界面的跳转方法
要实现按钮跳转页面,需要使用QStackedWidget类和QPushButton类。
QStackedWidget类是一个可以切换多个子窗口的窗口部件。它允许您在其内部存储一些QWidget,一次只显示一个。
QPushButton类是一个常用的按钮部件。我们可以将其与QStackedWidget一起使用,以便在点击按钮时显示不同的QWidget。
以下是一个简单的示例代码,演示如何使用QStackedWidget和QPushButton实现按钮跳转页面:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton, QLabel, QStackedWidget
class Window(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个堆栈窗口
self.stacked_widget = QStackedWidget()
self.setCentralWidget(self.stacked_widget)
# 创建两个页面
self.page1 = Page1()
self.page2 = Page2()
# 将页面添加到堆栈窗口中
self.stacked_widget.addWidget(self.page1)
self.stacked_widget.addWidget(self.page2)
# 创建一个垂直布局和两个按钮
layout = QVBoxLayout()
button1 = QPushButton("Page 1")
button2 = QPushButton("Page 2")
# 将按钮添加到布局中
layout.addWidget(button1)
layout.addWidget(button2)
# 创建一个标签
label = QLabel("This is the main window")
# 将标签添加到页面1中
self.page1.layout.addWidget(label)
# 将布局添加到页面2中
self.page2.setLayout(layout)
# 连接按钮的点击事件到槽函数
button1.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page1))
button2.clicked.connect(lambda: self.stacked_widget.setCurrentWidget(self.page2))
class Page1(QWidget):
def __init__(self):
super().__init__()
# 创建一个垂直布局
self.layout = QVBoxLayout()
self.setLayout(self.layout)
class Page2(QWidget):
def __init__(self):
super().__init__()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个堆栈窗口,并向其中添加了两个页面。我们还创建了一个垂直布局和两个按钮,将它们添加到第二个页面中。在按钮的点击事件中,我们使用setCurrentWidget()函数将堆栈窗口的当前页面切换为所选页面。
阅读全文