PyQt5基本控件之菜单栏QMenuBar

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

猜你喜欢

转载自blog.csdn.net/cjw12581/article/details/107688618