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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
Python列表list排列组合操作示例
Dec 18 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
python 计算积分图和haar特征的实例代码
Nov 20 Python
Python操作redis和mongoDB的方法
Dec 19 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
Python 列表反转显示的四种方法
Nov 16 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下使用SMTP发邮件的代码
2008/01/10 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
javascript的内存管理详解
2013/08/07 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
Python语言实现将图片转化为html页面
2017/12/06 Python
Python datetime包函数简单介绍
2019/08/28 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
佳能英国官方网站:Canon UK
2017/08/08 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
春节请假条
2014/04/11 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
运动会通讯稿100字
2015/07/20 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python