pyqt5菜单栏切换界面
时间: 2023-08-16 16:09:26 浏览: 149
在 PyQt5 中,可以使用 QMenuBar 和 QMenu 来创建菜单栏,然后使用 QStackedWidget 来实现界面的切换。
首先,需要导入相关的模块:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QStackedWidget, QWidget
```
然后,创建主窗口类,并继承自 QMainWindow:
```python
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建菜单栏
menubar = self.menuBar()
# 创建菜单
file_menu = menubar.addMenu('文件')
edit_menu = menubar.addMenu('编辑')
# 创建菜单项
file_action1 = QAction('界面1', self)
file_action2 = QAction('界面2', self)
edit_action1 = QAction('界面3', self)
# 绑定菜单项的触发事件
file_action1.triggered.connect(self.switch_to_page1)
file_action2.triggered.connect(self.switch_to_page2)
edit_action1.triggered.connect(self.switch_to_page3)
# 将菜单项添加到菜单中
file_menu.addAction(file_action1)
file_menu.addAction(file_action2)
edit_menu.addAction(edit_action1)
# 创建堆叠窗口
self.stacked_widget = QStackedWidget()
self.setCentralWidget(self.stacked_widget)
# 创建页面并添加到堆叠窗口中
self.page1 = QWidget()
self.page2 = QWidget()
self.page3 = QWidget()
self.stacked_widget.addWidget(self.page1)
self.stacked_widget.addWidget(self.page2)
self.stacked_widget.addWidget(self.page3)
def switch_to_page1(self):
self.stacked_widget.setCurrentWidget(self.page1)
def switch_to_page2(self):
self.stacked_widget.setCurrentWidget(self.page2)
def switch_to_page3(self):
self.stacked_widget.setCurrentWidget(self.page3)
```
最后,创建 QApplication 对象,并将主窗口显示出来:
```python
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
这样就可以通过菜单栏的选项来切换不同的界面了。你可以根据需要在每个页面中添加对应的控件和布局。
阅读全文