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 相关文章推荐
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
python应用程序在windows下不出现cmd窗口的办法
May 29 Python
Python中的进程分支fork和exec详解
Apr 11 Python
Python中sort和sorted函数代码解析
Jan 25 Python
Python中print和return的作用及区别解析
May 05 Python
安装docker-compose的两种最简方法
Jul 30 Python
django创建简单的页面响应实例教程
Sep 06 Python
记录模型训练时loss值的变化情况
Jun 16 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
python脚本第一行如何写
Aug 30 Python
Python中rapidjson参数校验实现
Jul 25 Python
Python绘画好看的星空图
Mar 17 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设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
JS前端笔试题分析
2016/12/19 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
python 变量初始化空列表的例子
2019/11/28 Python
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
领导调研接待方案
2014/02/27 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
聘任书模板
2014/03/29 职场文书
企业新年寄语
2014/04/04 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
基层党支部整改方案
2014/10/25 职场文书
酒会邀请函
2015/01/31 职场文书