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调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
python通过smpt发送邮件的方法
Apr 30 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
PyCharm中关于安装第三方包的三个建议
Sep 17 Python
Django websocket原理及功能实现代码
Nov 14 Python
如何利用pygame实现打飞机小游戏
May 30 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函数
2006/10/09 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
妇女儿童发展规划实施方案
2014/03/16 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
政风行风整改方案
2014/10/25 职场文书
教师个人教学总结
2015/02/11 职场文书
个人专业技术总结
2015/03/05 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书