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实现选择排序
Jun 04 Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 Python
Python实现基于POS算法的区块链
Aug 07 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
基于python二叉树的构造和打印例子
Aug 09 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 Python
Python class的继承方法代码实例
Feb 14 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 Python
如何利用python创作字符画
Jun 25 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的$_SERVER[SERVER_NAME]
2017/02/04 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
2018/08/05 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
python自动化测试之如何解析excel文件
2019/06/27 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
教育孩子心得体会
2014/01/01 职场文书
简历上的自我评价
2014/02/03 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
党组织结对共建协议书
2016/03/23 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers