pyqt5在当前窗口内通过点击菜单切换不同界面
时间: 2023-08-11 18:59:11 浏览: 74
您可以使用QStackedWidget来实现在当前窗口内通过点击菜单切换不同界面的功能。下面是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QMenuBar, QAction, QWidget, QVBoxLayout, QLabel, QPushButton, QStackedWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("界面切换示例")
self.setGeometry(100, 100, 400, 300)
# 创建菜单栏
menu_bar = self.menuBar()
file_menu = menu_bar.addMenu("文件")
# 创建菜单项
switch_menu = QAction("切换界面", self)
switch_menu.triggered.connect(self.switch_page)
file_menu.addAction(switch_menu)
# 创建堆叠窗口
self.stacked_widget = QStackedWidget()
self.setCentralWidget(self.stacked_widget)
# 创建页面并添加到堆叠窗口
page1 = QWidget()
layout1 = QVBoxLayout()
layout1.addWidget(QLabel("页面1"))
page1.setLayout(layout1)
self.stacked_widget.addWidget(page1)
page2 = QWidget()
layout2 = QVBoxLayout()
layout2.addWidget(QLabel("页面2"))
page2.setLayout(layout2)
self.stacked_widget.addWidget(page2)
page3 = QWidget()
layout3 = QVBoxLayout()
layout3.addWidget(QLabel("页面3"))
page3.setLayout(layout3)
self.stacked_widget.addWidget(page3)
def switch_page(self):
current_index = self.stacked_widget.currentIndex()
next_index = (current_index + 1) % self.stacked_widget.count()
self.stacked_widget.setCurrentIndex(next_index)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个主窗口,其中包含一个菜单栏和一个堆叠窗口。菜单栏中有一个"切换界面"的菜单项,点击该菜单项时,会切换到下一个界面。堆叠窗口中添加了三个页面,分别是"页面1"、"页面2"和"页面3",初始显示第一个页面。通过`setCurrentIndex()`方法可以切换当前显示的页面。
您可以根据自己的需求修改页面的布局和内容,以满足实际的界面切换需求。