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中用memcached来减少数据库查询次数的教程
Apr 07 Python
利用python批量修改word文件名的方法示例
Oct 17 Python
python中学习K-Means和图片压缩
Nov 20 Python
Python装饰器用法示例小结
Feb 11 Python
创建Django项目图文实例详解
Jun 06 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
django处理select下拉表单实例(从model到前端到post到form)
Mar 13 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
python实现手势识别的示例(入门)
Apr 15 Python
Python基于Tkinter编写crc校验工具
May 06 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
python+selenium实现12306模拟登录的步骤
Jan 21 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怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
php xhprof使用实例详解
2019/04/15 PHP
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
用JS剩余字数计算的代码
2008/07/03 Javascript
28个JS验证函数收集
2010/03/02 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
python实现的一个p2p文件传输实例
2014/06/04 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
wxPython实现带颜色的进度条
2019/11/19 Python
通过自学python能找到工作吗
2020/06/21 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
事业单位分类改革实施方案
2014/03/21 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
质量保证书格式模板
2015/02/27 职场文书
文明礼仪倡议书
2015/04/28 职场文书
2016开学第一课心得体会
2016/01/23 职场文书