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 GAE、Django导出Excel的方法
Nov 24 Python
python中base64加密解密方法实例分析
May 16 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
python发送告警邮件脚本
Sep 17 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
python对于requests的封装方法详解
Jan 03 Python
详解Python设计模式之策略模式
Jun 15 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
用python发送微信消息
Dec 21 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 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操作mysql数据库的基本类代码
2014/02/25 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
基于jquery的分页控件(C#)
2011/01/06 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
解析Python中的异常处理
2015/04/28 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
python让函数不返回结果的方法
2020/06/22 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
领导班子整改措施
2014/10/24 职场文书
关于五一放假的通知
2015/08/18 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript
Python超简单容易上手的画图工具库推荐
2021/05/10 Python
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android