QMenuBar简介
在QMainWindow主窗口对象的标题栏下方,一般会有一个QMenuBar菜单栏对象,通过QMainWindow.menuBar()可以获取该QMenuBar对象,通过QMenuBar对象的addMenu方法可以在菜单栏添加可以具有子菜单的菜单项。addAction()可添加不带子菜单的菜单项。
QMenuBar常用方法有:
- addMenu(): 在菜单栏中添加一个新的QMenu对象,通过QMenu对象添加下拉菜单;
- addAction(): 在菜单栏添加一个不带下拉菜单的菜单项;
- clear(): 删除菜单栏中的所有菜单项。
QMenuBar类继承关系:
测试QMenuBar
创建文件qmenbar.py, 在菜单栏上使用addMenu和addAction方法演示向菜单栏添加菜单项。完整代码如下:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QApplication, QMainWindow, QMenuBar, QMenu, QAction,
QPlainTextEdit)
class DemoMenuBar(QMainWindow):
def __init__(self, parent=None):
super(DemoMenuBar, self).__init__(parent)
# 设置窗口标题
self.setWindowTitle('实战PyQt5: QMenuBar Demo!')
# 设置窗口大小
self.resize(400, 300)
self.initUi()
def initUi(self):
menuBar = self.menuBar()
#添加一个菜单项,在菜单项下课添加子菜单项
fileMenu = menuBar.addMenu('文件')
#添加一个不带子菜单项的菜单
menuBar.addAction('帮助')
#文件操作
fileMenu.addAction(QAction('新建', self))
fileMenu.addAction(QAction('打开', self))
fileMenu.addSeparator()
fileMenu.addAction(QAction("保存", self))
fileMenu.addAction(QAction('另存为', self))
fileMenu.addSeparator()
fileMenu.addAction(QAction('退出', self))
#设置一个文本编辑器作为中心widget
txtEdit = QPlainTextEdit(self)
self.setCentralWidget(txtEdit)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DemoMenuBar()
window.show()
sys.exit(app.exec())
运行结果如下图:
测试QMenuBar
本文知识点
- QMainWindows的菜单栏项QMenuBar;
- QMenuBar添加可带弹出子菜单的菜单项(用方法addMenu());
- QMenuBar添加不带弹出子菜单的菜单项(用方法addAction())。