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基础教程之字典操作详解
Mar 25 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
老生常谈Python基础之字符编码
Jun 14 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
Apr 05 Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 Python
有关Python的22个编程技巧
Aug 29 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
python中强大的format函数实例详解
Dec 05 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
Django debug为True时,css加载失败的解决方案
Apr 24 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 syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
php绘制一个扇形的方法
2015/01/24 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
详解python中的模块及包导入
2019/08/30 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
房屋租赁意向书
2014/04/01 职场文书
总经理岗位职责范本
2015/04/01 职场文书
班委竞选稿范文
2015/11/21 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android