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中使用支持向量机SVM实践
Dec 27 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
python调用API实现智能回复机器人
Apr 10 Python
django允许外部访问的实例讲解
May 14 Python
python编辑用户登入界面的实现代码
Jul 16 Python
Python魔法方法功能与用法简介
Apr 04 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 Python
Python脚本去除文件的只读性操作
Mar 05 Python
python学习将数据写入文件并保存方法
Jun 07 Python
如何在mac版pycharm选择python版本
Jul 21 Python
Python&Matlab实现樱花的绘制
Apr 07 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运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
php读取csc文件并输出
2015/05/21 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
python实现机器学习之元线性回归
2018/09/06 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
大学生毕业自我鉴定范文
2013/09/19 职场文书
生产总经理岗位职责
2013/12/19 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
电教室标语
2014/06/20 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
如何通过cmd 连接阿里云服务器
2022/04/18 Servers