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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
5款非常棒的Python工具
Jan 05 Python
python使用xslt提取网页数据的方法
Feb 23 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python networkx 包绘制复杂网络关系图的实现
Jul 10 Python
python爬取盘搜的有效链接实现代码
Jul 20 Python
python代码区分大小写吗
Jun 17 Python
python Tornado框架的使用示例
Oct 19 Python
python中time、datetime模块的使用
Dec 14 Python
Python装饰器的练习题
Nov 23 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
德生PL990的分析评价
2021/03/02 无线电
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
浅谈php冒泡排序
2014/12/30 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
2016/04/13 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
python实现百度关键词排名查询
2014/03/30 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
python requests使用socks5的例子
2019/07/25 Python
python opencv实现证件照换底功能
2019/08/19 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
如何将字串String转换成整数int
2015/02/21 面试题
服务承诺书格式
2014/05/21 职场文书
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
停电放假通知
2015/04/14 职场文书
英雄儿女观后感
2015/06/09 职场文书
企业法人任命书
2015/09/21 职场文书
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript