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的设计模式编程入门指南
Apr 02 Python
在MAC上搭建python数据分析开发环境
Jan 26 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
Python-OpenCV基本操作方法详解
Apr 02 Python
Python常见字典内建函数用法示例
May 14 Python
python实现Zabbix-API监控
Sep 17 Python
python绘制多个曲线的折线图
Mar 23 Python
Python读取xlsx文件的实现方法
Jul 04 Python
使用keras2.0 将Merge层改为函数式
May 23 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 Python
如何解决pycharm调试报错的问题
Aug 06 Python
python request 模块详细介绍
Nov 10 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
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
Javascript MD4
2006/12/20 Javascript
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
Python实现图片转字符画的示例
2017/08/22 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
django 模型中的计算字段实例
2020/05/19 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
超市促销活动方案
2014/03/05 职场文书
购房意向书
2014/04/01 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
开学典礼致辞
2015/07/29 职场文书
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers