pyqt5 button切换界面
时间: 2023-09-09 22:12:11 浏览: 185
利用PyQt5实现窗口切换
在PyQt5中,可以使用QStackedWidget来实现多个页面的切换。具体步骤如下:
1. 创建多个QWidget作为不同的页面,每个页面可以包含不同的控件(例如按钮、标签、文本框等)。
2. 创建一个QStackedWidget,并将所有页面添加到其中。
3. 创建按钮,并为其设置槽函数,槽函数中调用QStackedWidget的setCurrentIndex()方法来切换页面。
以下是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout, QHBoxLayout, QStackedWidget
class Page1(QWidget):
def __init__(self):
super().__init__()
label = QLabel("This is Page 1")
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
class Page2(QWidget):
def __init__(self):
super().__init__()
label = QLabel("This is Page 2")
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
class MainWidget(QWidget):
def __init__(self):
super().__init__()
self.stack = QStackedWidget()
self.page1 = Page1()
self.page2 = Page2()
self.stack.addWidget(self.page1)
self.stack.addWidget(self.page2)
button1 = QPushButton("Page 1")
button2 = QPushButton("Page 2")
button1.clicked.connect(self.showPage1)
button2.clicked.connect(self.showPage2)
button_layout = QHBoxLayout()
button_layout.addWidget(button1)
button_layout.addWidget(button2)
layout = QVBoxLayout()
layout.addWidget(self.stack)
layout.addLayout(button_layout)
self.setLayout(layout)
def showPage1(self):
self.stack.setCurrentWidget(self.page1)
def showPage2(self):
self.stack.setCurrentWidget(self.page2)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_widget = MainWidget()
main_widget.show()
sys.exit(app.exec_())
```
在此示例中,我们创建了两个页面(Page1和Page2),并将它们添加到QStackedWidget中。然后创建了两个按钮,分别用于切换到不同的页面。按钮的clicked信号连接到了对应的槽函数(showPage1和showPage2),在这些槽函数中调用了setCurrentWidget()方法来切换页面。最后将QStackedWidget和按钮添加到主窗口中,并显示主窗口。运行程序后,点击按钮可以切换不同的页面。
阅读全文