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 开发Activex组件方法
Nov 08 Python
python文件操作整理汇总
Oct 21 Python
Python通过select实现异步IO的方法
Jun 04 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
Python检测网络延迟的代码
May 15 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
使用python求解二次规划的问题
Feb 29 Python
Python matplotlib修改默认字体的操作
Mar 05 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 Python
使用Python操作MySQL的小技巧
Sep 10 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
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
python提示No module named images的解决方法
2014/09/29 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
Python多继承原理与用法示例
2018/08/23 Python
django模板结构优化的方法
2019/02/28 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
校园安全广播稿范文
2014/09/25 职场文书
新教师个人工作总结
2015/02/06 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript