PyQt5之MenuBar菜单控件的使用(三)

2023年5月15日13:09:23

MenuBar 详解

在PyQt5中,菜单栏、主菜单和菜单项分别用QMenuBar类、QMenu类和QAction类来表示。


一、定义

菜单栏是GUI应用的常规组成部分,是位于各种菜单中的一组命令操作。菜单栏(QMenuBar) 它分为两部分:主菜单(QMenu)菜单项(QAction)。一个QMenu中可包含任意多个QAction对象,也可包含另外的QMenu,用来表示级联菜单。创建一个菜单,基本上都要用上这3个类。
PyQt5之MenuBar菜单控件的使用(三)

1.QMenuBar类

QMenuBar类是所有窗口的菜单栏,创建菜单栏的两种方法如下:
方法一: QMenuBar类的构造方法

self.menuBar = PyQt5.QtWidgets.QMenuBar(QMainWindow)

方法二:QMainWindow对象的menuBar()方法

self.menuBar = QMainWindow.menuBar()

创建完菜单栏后,就可以使用QMenuBar类的方法对菜单进行设置。

方法 说明
addAction() 添加菜单项
addActions() 添加多个菜单项
addMenu() 添加主菜单

2.QMenu类

QMenu类是菜单栏中的菜单,可显示文本和图标,但不执行操作,类似于标签label的作用。

方法 说明
addAction() 添加菜单项
addMenu() 添加主菜单
setTitle() 设置菜单的文本
title() 获取菜单的文本

2.QAction类

PyQt5中将用户与界面进行交互的元素抽象为一种“动作”,用QAction类表示。QAction类是一个运行在菜单栏、工具栏和定制键盘快捷键的抽象类,它是一个真正执行操作的部件。该类有一个常用的信号triggered,用来在单击菜单项时发射。

方法 说明
setIcon() 设置菜单项图标
setShortcut() 设置快捷键
setEnabled() 设置菜单项是否可用
title() 获取菜单项的文本

二、创建一个菜单栏

在下面的例子中,我们创建了一个带有菜单的菜单栏。这个菜单包含了一个动作,如果选中,就会终止应用程序。
代码如下(示例):

# -*- coding: utf-8 -*-
# @Time    : 2022/7/14 14:14

import sys
from PyQt5.QtWidgets import QMainWindow, QAction, QApplication, qApp
from PyQt5.QtGui import QIcon

class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.my_initUI()

    def my_initUI(self):
        exitAct = QAction(QIcon('images/exit.ico'), '退出&(Q)', self)     #创建QAction类的对象exitAct。QAction是一个用于菜单栏、工具栏或自定义快捷键的抽象动作行为
        exitAct.setShortcut('Ctrl+Q')    			#调用对象的方法,为这个动作定义一个快捷键
        # exitAct.setStatusTip('退出应用')   	#创建一个当我们鼠标浮于菜单项之上就会显示的一个状态提示
        exitAct.triggered.connect(qApp.quit)      #选中特定的动作,触发信号被发射。信号连接到 QApplication组件的 quit()方法,这样就中断了应用
        # self.statusBar()      					#创建状态栏,用来显示上面的状态提示

        menubar = self.menuBar()            	# menuBar()方法创建了一个菜单栏
        fileMenu = menubar.addMenu('文件&(F)')        #创建一个文件菜单,设置快捷键F
        fileMenu.addAction(exitAct)                 #将退出动作添加到file菜单中
        self.setGeometry(300,300,400,300)
        self.setWindowTitle('菜单栏')
        self.show()

if __name__=='__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

效果图如下:
PyQt5之MenuBar菜单控件的使用(三)


  • 作者:清風明月_xf
  • 原文链接:https://blog.csdn.net/qq_41597943/article/details/125782728
    更新时间:2023年5月15日13:09:23 ,共 1782 字。