QMenuBar
基本方法
方法 | 效果 |
---|---|
menuBar() | 返回主窗口的QMenuBar对象 |
addMenu() | 在菜单栏中添加一个新的QMenu对象 |
addAction() | 向QMenu小控件中添加一个操作按钮,其中包含文本或图标 |
setEnabled() | 将操作按钮设置为启用/禁用 |
addSeperator() | 在菜单中添加一条分割线 |
clear() | 删除菜单栏的内容 |
setShortcut() | 将快捷键关联到操作按钮 |
setText() | 设置菜单项的文本 |
setTitle() | 设置QMenu小控件的标题 |
text() | 返回与QACtion对象关联的文本 |
title() | 返回QMenu小控件的标题 |
应用实例
利用菜单栏实现添加子菜单及点击后响应:
顶层窗口必须是QMainWindow对象,才可以引用QMenuBar对象。
# # 菜单栏调度----------------------------------------------------------------------------------------------------
openFileaction = QAction('&子菜单1', self) # 在文件主菜单1下增加子菜单1
openFileaction.triggered.connect(self.menu_openFile_clicked) # 点击后打开新界面
openFileaction.setShortcut('Ctrl+A') # 子菜单1界面设置打开快捷键
.....
openHelpWordaction = QAction('&子菜单2', self)
openHelpWordaction.triggered.connect(self.menu_openHelpWordaction_clicked) # 在文件主菜单1下增加子菜单2
openHelpWordaction.setShortcut('Ctrl+B') # 子菜单2界面设置打开快捷键
menubar = self.menuBar() # 声明菜单栏
fileMenu_File = menubar.addMenu('&主菜单1') # 菜单栏增加文件主菜单1
fileMenu_File.addAction(openFileaction) # 增加打开事件1
fileMenu_File.addAction(openHelpWordaction) # 增加打开事件2
......
fileMenu_Help = menubar.addMenu('&主菜单2') # 菜单栏增加文件主菜单2
fileMenu_Help.addAction(openxxxxxaction) # 增加打开事件
# # 菜单栏调度----------------------------------------------------------------------------------------------------
Demo
import sys
from PyQt5.QtWidgets import *
class MenuDemo(QMainWindow):
def __init__(self, parent=None):
super(MenuDemo, self).__init__(parent)
# 水平布局
layout = QHBoxLayout()
# # 菜单栏调度----------------------------------------------------------------------------------------------------
openFileaction = QAction('&子菜单1', self) # 在文件主菜单1下增加子菜单1
openFileaction.triggered.connect(self.menu_openFile_clicked) # 点击后打开新界面
openFileaction.setShortcut('Ctrl+A') # 子菜单1界面设置打开快捷键
openHelpWordaction = QAction('&子菜单2', self)
openHelpWordaction.triggered.connect(self.menu_openHelpWordaction_clicked) # 在文件主菜单1下增加子菜单2
openHelpWordaction.setShortcut('Ctrl+B') # 子菜单2界面设置打开快捷键
menubar = self.menuBar() # 声明菜单栏
fileMenu_File = menubar.addMenu('&主菜单1') # 菜单栏增加文件主菜单1
fileMenu_File.addAction(openFileaction) # 增加打开事件1
fileMenu_File.addAction(openHelpWordaction) # 增加打开事件2
fileMenu_Help = menubar.addMenu('&主菜单2') # 菜单栏增加文件主菜单2
# # 菜单栏调度----------------------------------------------------------------------------------------------------
def menu_openFile_clicked(self):
print(123)
def menu_openHelpWordaction_clicked(self):
print(456)
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = MenuDemo()
demo.show()
sys.exit(app.exec_())
END