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_())

运行程序,显示效果如图

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 GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例

本文地址: http://www.cppcns.com/jiaoben/python/301716.html

python menu实例_python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例...相关推荐

  1. pythongui项目实例_python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例...

    PyQt5状态栏控件QStatusBar简介 MainWindow对象在底部保留有一个水平条,作为状态栏(QstatusBar),用于显示永久或临时的状态信息 QStatusBar类中的常用方法 方法 ...

  2. qpython3可视图形界面_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法...

    QWidget基本介绍 基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类. 窗口坐标系统 PyQt使用统一的坐标系统来定位窗口控件的位置和 ...

  3. python表格控件_python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例...

    PyQt5表格控件QTableView简介 在通常情况下,一个应用需要和一批数据进行交互,然后以表格的形式输出这些信息,这时就需要用到QTableView类了,在QTableView中可以使用自定义的 ...

  4. python gui控件案例_python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例...

    PyQt5布局控件QHBoxLayout简介 采用QBOXLayout类可以在水平和垂直方向上排列控件,QHBoxLayout和QVBoxLayout类继承自QBoxLayout 采用QHBoxLay ...

  5. python gui 显示表格_python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例...

    PyQt5表格控件QTableView简介 在通常情况下,一个应用需要和一批数据进行交互,然后以表格的形式输出这些信息,这时就需要用到QTableView类了,在QTableView中可以使用自定义的 ...

  6. python选项卡控件_python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与...

    PyQt5选项卡控件QTabWidget简介 QTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面,通过单击各选项卡可以查看对应的界面,如果在一个窗口中显示的输入字段很多 ...

  7. pythongui界面实例带注释_python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例...

    PyQt5状态栏控件QStatusBar简介 MainWindow对象在底部保留有一个水平条,作为状态栏(QstatusBar),用于显示永久或临时的状态信息 QStatusBar类中的常用方法 方法 ...

  8. python界面设计资源库_python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法...

    PyQt5 Qt Designer (Qt设计师) PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C++开发, 并且跨平台. PyQt双许可 ...

  9. python gui界面 tcp_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法

    QWidget基本介绍 基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类. 窗口坐标系统 PyQt使用统一的坐标系统来定位窗口控件的位置和 ...

最新文章

  1. php 去除首位字符_php中如何去除字符串首尾字符?
  2. Ubuntu18.04将软件(Eclipse)固定在侧边收藏夹
  3. 快手基于 Flink 的持续优化与实践
  4. volecity引入html,HTML5 Velocity.js 从页面下方跳入页面的登录框
  5. java成神之——Fork/Join基本使用
  6. 心语收集14:人生没有如果,但是有很多但是;人生不能后悔,但是可以拐弯。...
  7. jsp过滤器一点小结
  8. c++ 函数指针和指针函数
  9. node.js 数据库操作工具类封装
  10. Python模块大全(Mark随用随看)
  11. blowfish加密算法(c实现)
  12. python3下载手机安卓版,python3.0手机版下载
  13. 非真实感渲染(NPR)论文理解及其复现(Unity) - 《Stylized Highlights for Cartoon Rendering and Animation》
  14. 80端口和8080端口的区别是什么?
  15. android平台下OpenGL ES 3.0绘制纯色背景
  16. JS三元表达式动态改变显示内容
  17. 记一次蚂蚁金服面试经历
  18. LeetCode——二叉树
  19. 电商网站产品数据库设计
  20. VMware Workstation 未能启动 VMware Authorization Service解决方法

热门文章

  1. IOS-UISearchBar
  2. 读取xml并转换为Java对象
  3. 联网生活方式下,消费者的7大关键需求
  4. Android系统搜索对话框(浮动搜索框)的使用
  5. TCP三次握手与DDOS***原理
  6. Shell 脚本实例
  7. MySQL orzdba、dodba、top、iostat、vmstat、perf等
  8. Refactoring之——代码的坏味道(一)过长方法
  9. Win10 Build9926 更新问题解决
  10. [误将两块磁盘挂载到根目录][解决办法]