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 相关文章推荐
wxPython窗口的继承机制实例分析
Sep 28 Python
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 Python
Django项目中model的数据处理以及页面交互方法
May 30 Python
Python闭包和装饰器用法实例详解
May 22 Python
django url到views参数传递的实例
Jul 19 Python
Django 响应数据response的返回源码详解
Aug 06 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
python进度条显示之tqmd模块
Aug 22 Python
python爬虫基础之urllib的使用
Dec 31 Python
Python Flask请求扩展与中间件相关知识总结
Jun 11 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
对javascript和select部件的结合运用
2006/10/09 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
JS定时器实例详细分析
2013/10/11 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
python比较2个xml内容的方法
2015/05/11 Python
Python3处理文件中每个词的方法
2015/05/22 Python
python实现内存监控系统
2021/03/07 Python
对Python中plt的画图函数详解
2018/11/07 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Python双链表原理与实现方法详解
2020/02/22 Python
python实现双人五子棋(终端版)
2020/12/30 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
家用个人磨皮机:Trophy Skin
2017/03/30 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
校园奶茶店创业计划书
2014/01/23 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
化妆品促销方案
2014/02/24 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
煤矿安全协议书
2014/08/20 职场文书
住房租房协议书
2014/08/20 职场文书
人大代表选举标语
2014/10/07 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
2015年加油站工作总结
2015/05/13 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python