PyQt6 QMenuBar菜单栏控件

锋哥原创的PyQt6视频教程:

2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计43条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11C4y1P7fj/

在PyQt6中,菜单栏使用QMenuBar类表示,它分为两部分:主菜单和菜单项,其中,主菜单被显示为一个QMenu类,而菜单项则使

用QAciton类表示。一个QMenu中可以包含任意多个QAction对象,也可以包含另外的QMenu,用来表示级联菜单。

PyQt6 QMenuBar菜单栏控件_第1张图片

QMenuBar类是所有窗口的菜单栏。

QMenuBar类的常用方法:

方法 说明
addAction() 添加菜单项
addMenu() 添加菜单
addActions() 添加多个菜单项
addSeparator() 添加分割线

QMenu类表示菜单栏中的菜单,可以显示文本和图标,但是并不负责执行操作,类似Label的作用。

QMenu类的常用方法:

方法 说明
addAction() 添加菜单项
setTitle() 设置菜单的文本
addMenu() 添加菜单
title() 获取菜单的标题文本
addSeparator() 添加分割线

QAction类是菜单项。PyQt6将用户与界面进行交互的元素抽象为一种“动作” ,使用QAction类表示。QAction才是真正负责执行操作的部件。

QAction类的常用方法:

方法 说明
setIcon() 设置菜单项图标
setShortcut() 设置快捷键
setIconVisibleInMenu() 设置图标是否显示
setToolTip() 设置提示文本
setText() 添加菜单项文本
setEnabled() 设置菜单项是否可用
setIconText() 设置图标文本
text() 获取菜单项的文本

学菜单栏控件QMenuBar,涉及到 主窗体控件(QMainWindow),所以我们也学习下主窗体控件(QMainWindow)。

主窗体类是通用的主窗体,包含菜单栏(QMenuBar),工具栏(QToolBar),悬停部件(QDockWidget)、中央部件(Central Widget)、状态栏(QStatusBar)等基本类型。

PyQt6 QMenuBar菜单栏控件_第2张图片

PyQt6 QMenuBar菜单栏控件_第3张图片

UI生成参考代码:

from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.menuBar = QtWidgets.QMenuBar(parent=MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 800, 21))
        self.menuBar.setObjectName("menuBar")
        self.menu = QtWidgets.QMenu(parent=self.menuBar)
        self.menu.setObjectName("menu")
        self.menu_2 = QtWidgets.QMenu(parent=self.menu)
        self.menu_2.setObjectName("menu_2")
        MainWindow.setMenuBar(self.menuBar)
        self.actionadd = QtGui.QAction(parent=MainWindow)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("C:/Users/java1234/Desktop/add.png"), QtGui.QIcon.Mode.Normal,
                       QtGui.QIcon.State.Off)
        self.actionadd.setIcon(icon)
        self.actionadd.setObjectName("actionadd")
        self.action_2 = QtGui.QAction(parent=MainWindow)
        self.action_2.setObjectName("action_2")
        self.action_4 = QtGui.QAction(parent=MainWindow)
        self.action_4.setObjectName("action_4")
        self.action_6 = QtGui.QAction(parent=MainWindow)
        self.action_6.setObjectName("action_6")
        self.action_7 = QtGui.QAction(parent=MainWindow)
        self.action_7.setObjectName("action_7")
        self.menu_2.addAction(self.action_6)
        self.menu_2.addAction(self.action_7)
        self.menu.addAction(self.actionadd)
        self.menu.addAction(self.action_2)
        self.menu.addAction(self.menu_2.menuAction())
        self.menu.addSeparator()
        self.menu.addAction(self.action_4)
        self.menuBar.addAction(self.menu.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.menu.setTitle(_translate("MainWindow", "学生管理"))
        self.menu_2.setTitle(_translate("MainWindow", "学生类别管理"))
        self.actionadd.setText(_translate("MainWindow", "添加"))
        self.actionadd.setToolTip(_translate("MainWindow", "添加测试"))
        self.actionadd.setShortcut(_translate("MainWindow", "Ctrl+Y"))
        self.action_2.setText(_translate("MainWindow", "修改"))
        self.action_4.setText(_translate("MainWindow", "安全退出"))
        self.action_6.setText(_translate("MainWindow", "学生类别添加"))
        self.action_7.setText(_translate("MainWindow", "学生类别修改"))

你可能感兴趣的:(Python,QMenuBar,PyQt6,Pyqt,python)