利用python与pyqt5实现一个主窗口切换3个不同界面
时间: 2023-12-14 11:38:08 浏览: 52
可以通过使用QStackedWidget来实现主窗口切换3个不同界面。下面是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QStackedWidget, QWidget, QVBoxLayout, QPushButton
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('Main Window')
# 创建一个堆叠窗口
self.stack = QStackedWidget()
self.setCentralWidget(self.stack)
# 创建3个不同的页面
self.page1 = QWidget()
self.page2 = QWidget()
self.page3 = QWidget()
# 在页面上添加按钮
self.btn1 = QPushButton('Page 1')
self.btn1.clicked.connect(lambda: self.stack.setCurrentWidget(self.page1))
self.btn2 = QPushButton('Page 2')
self.btn2.clicked.connect(lambda: self.stack.setCurrentWidget(self.page2))
self.btn3 = QPushButton('Page 3')
self.btn3.clicked.connect(lambda: self.stack.setCurrentWidget(self.page3))
# 将按钮添加到页面上
layout1 = QVBoxLayout()
layout1.addWidget(self.btn1)
self.page1.setLayout(layout1)
layout2 = QVBoxLayout()
layout2.addWidget(self.btn2)
self.page2.setLayout(layout2)
layout3 = QVBoxLayout()
layout3.addWidget(self.btn3)
self.page3.setLayout(layout3)
# 将页面添加到堆叠窗口上
self.stack.addWidget(self.page1)
self.stack.addWidget(self.page2)
self.stack.addWidget(self.page3)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
这将创建一个具有3个页面的主窗口,并在每个页面上放置一个按钮。单击每个按钮将切换到相应的页面。