python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例


Posted in Python onFebruary 28, 2020

PyQt5菜单栏控件QMenuBar介绍

QMenuBar在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象

QMenuBar类提供了一个可以包含一个或多个QAction对象或 级联的QMenu对象,要创建一个弹出菜单,Pyqt提供了createPopupMenu()函数,menuBar()函数用于返回主窗口的QMenuBar对象:addMenu()函数可以将菜单添加到菜单栏中,通过addAction()函数可以在菜单中进行添加操作

设计菜单系统时常用的一些重要方法

方法 描述
menuBar() 返回主窗口的QMenuBar对象
addMenu() 在菜单栏中添加一个新的QMenu对象
addAction() 向QMenu小控件中添加一个操作按钮,其中包含文本或图标
setEnabled() 将操作按钮设置为启用/禁用
addSeperator() 在菜单中添加一条分割线
clear() 删除菜单栏的内容
setShortcut() 将快捷键关联到操作按钮
setText() 设置菜单项的文本
setTitle() 设置QMenu小控件的标题
text() 返回与QACtion对象关联的文本
title() 返回QMenu小控件的标题

单击任何QAction按钮时,QMenu对象都会发射triggered信号

QMenuBar的使用实例

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class MenuDemo(QMainWindow):
  def __init__(self,parent=None):
    super(MenuDemo, self).__init__(parent)

    #水平布局
    layout=QHBoxLayout()

    #实例化主窗口的QMenuBar对象
    bar=self.menuBar()
    #向菜单栏中添加新的QMenu对象,父菜单
    file=bar.addMenu('File')
    #向QMenu小控件中添加按钮,子菜单
    file.addAction('New')

    #定义响应小控件按钮,并设置快捷键关联到操作按钮,添加到父菜单下
    save=QAction('Save',self)
    save.setShortcut('Ctrl+S')
    file.addAction(save)

    #创建新的子菜单项,并添加孙菜单
    edit=file.addMenu('Edit')
    edit.addAction('Copy')
    edit.addAction('Paste')

    #添加父菜单下
    quit=QAction('Quit',self)
    file.addAction(quit)

    #单击任何Qmenu对象,都会发射信号,绑定槽函数
    file.triggered[QAction].connect(self.processtrigger)

    #设置布局及标题
    self.setLayout(layout)
    self.setWindowTitle('menu例子')

  def processtrigger(self,q):
    #输出那个Qmenu对象被点击
    print(q.text()+'is triggeres')

if __name__ == '__main__':
  app=QApplication(sys.argv)
  demo=MenuDemo()
  demo.show()
  sys.exit(app.exec_())

运行程序,显示效果如图

python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例

QMenuBar代码分析

在这个例子中,顶层窗口必须是QMainWindow对象,才可以引用QMenuBar对象

通过addMenu()方法将‘File'菜单添加到菜单栏

bar=self.menuBar()

    #向菜单栏中添加新的QMenu对象,父菜单

    file=bar.addMenu('File')

菜单栏中的操作按钮可以是字符串或QAction对象

file.addAction('New')
    #定义响应小控件按钮,并设置快捷键关联到操作按钮,添加到父菜单下

    save=QAction('Save',self)
    save.setShortcut('Ctrl+S')
    file.addAction(save)

将子菜单添加到顶级菜单中

edit=file.addMenu('Edit')
    edit.addAction('Copy')
    edit.addAction('Paste')

菜单发射triggered信号,将信号连接到槽函数processtrigger()该函数接受信号的QAction对象

file.triggered[QAction].connect(self.processtrigger)

本文详细讲解了PyQt5菜单栏控件QMenuBar的使用方法与实例,更多关于PyQt5菜单栏控件的使用知识请查看下面的相关链接

Python 相关文章推荐
python批量制作雷达图的实现方法
Jul 26 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
Python连接数据库学习之DB-API详解
Feb 07 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
深入浅析Python 中的sklearn模型选择
Oct 12 Python
Python实现爬取并分析电商评论
Jun 19 Python
如何利用python发送邮件
Sep 26 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
pymongo insert_many 批量插入的实例
Dec 05 Python
python 基于pygame实现俄罗斯方块
Mar 02 Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 #Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 #Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 #Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 #Python
Python 之 Json序列化嵌套类方式
Feb 27 #Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 #Python
You might like
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
javascript中的隐式调用
2018/02/10 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
详解ES6系列之私有变量的实现
2018/11/21 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
python如何在终端里面显示一张图片
2016/08/17 Python
python机器学习库常用汇总
2017/11/15 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
python3 mmh3安装及使用方法
2019/10/09 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
Python3 元组tuple入门基础
2020/02/09 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
谢师宴邀请函
2015/02/02 职场文书
培训班通知
2015/04/25 职场文书
Python利用zhdate模块实现农历日期处理
2022/03/31 Python
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android