PyQt5菜单与工具栏

2024-05-10 09:52
文章标签 pyqt5 工具栏 菜单

本文主要是介绍PyQt5菜单与工具栏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1. 主菜单
    • 2. 子菜单
    • 3. 勾选菜单
    • 4. 右键菜单
    • 5. 工具栏

1. 主菜单

PyQt5是一个强大的Python库,用于创建图形用户界面(GUI)。其中,菜单栏是GUI应用程序中常见的一部分,允许用户通过点击来执行各种操作。下面是一个简单的PyQt5菜单栏示例,

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QActionclass Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):                # 初始化UIself.statusBar().showMessage('Ready')     # 状态栏显示消息menubar = self.menuBar()    # 创建菜单栏fileMenu = menubar.addMenu('File')       # 添加一个名为"File"的菜单# 创建一个名为"Exit"的动作,连接到一个名为"triggered"的信号exitAction = QAction('Exit', self)       exitAction.setShortcut('Ctrl+Q')          # 设置快捷键exitAction.setStatusTip('Exit application')   # 设置提示信息exitAction.triggered.connect(self.close)    # 将动作与关闭窗口函数连接fileMenu.addAction(exitAction)      # 将"Exit"动作添加到"File"菜单中self.setGeometry(300, 300, 300, 200)   # 设置窗口位置和大小self.setWindowTitle('Menu Bar Example')   # 设置窗口标题self.show()   # 显示窗口if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

这段代码创建了一个简单的窗口应用程序,其中包含一个菜单栏,其中

  1. import sys: 导入sys模块,用于与Python解释器进行交互。
  2. from PyQt5.QtWidgets import QApplication, QMainWindow, QAction: 从PyQt5.QtWidgets模块中导入QApplication(应用程序类)、QMainWindow(主窗口类)和QAction(动作类)。
  3. class Example(QMainWindow):: 创建一个名为Example的类,继承自QMainWindow类。
  4. def __init__(self):: Example类的构造函数。
  5. super().__init__(): 调用父类(QMainWindow)的构造函数。
  6. self.initUI(): 调用自定义的initUI()方法。
  7. def initUI(self):: 自定义的方法,用于初始化用户界面。
  8. self.statusBar().showMessage('Ready'): 在窗口底部创建状态栏,并显示消息"Ready"。
  9. menubar = self.menuBar(): 创建菜单栏。
  10. fileMenu = menubar.addMenu('File'): 添加一个名为"File"的菜单。
  11. exitAction = QAction('Exit', self): 创建一个名为"Exit"的动作,并将其与当前窗口关联。
  12. exitAction.setShortcut('Ctrl+Q'): 设置动作的快捷键为Ctrl+Q。
  13. exitAction.setStatusTip('Exit application'): 设置动作的提示信息为"Exit application"。
  14. exitAction.triggered.connect(self.close): 将动作的"triggered"信号连接到当前窗口的关闭函数。
  15. fileMenu.addAction(exitAction): 将"Exit"动作添加到"File"菜单中。
  16. self.setGeometry(300, 300, 300, 200): 设置窗口的位置和大小。
  17. self.setWindowTitle('Menu Bar Example'): 设置窗口标题为"Menu Bar Example"。
  18. self.show(): 显示窗口。
  19. if __name__ == '__main__':: Python中的惯用法,检查当前脚本是否作为主程序运行。
  20. app = QApplication(sys.argv): 创建应用程序对象。
  21. ex = Example(): 创建Example类的实例。
  22. sys.exit(app.exec_()): 运行应用程序的主事件循环,并确保在退出时清理系统资源。

运行结果如下

在这里插入图片描述

2. 子菜单

子菜单是菜单栏中的二级菜单,允许在主菜单下创建更多的选项。下面是一个包含子菜单的PyQt5示例,

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QMenuclass Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):                # 初始化UIself.statusBar().showMessage('Ready')     # 状态栏显示消息menubar = self.menuBar()    # 创建菜单栏fileMenu = menubar.addMenu('File')       # 添加一个名为"File"的菜单# 创建一个名为"New"的动作newAction = QAction('New', self)       newAction.setStatusTip('New File')   # 设置提示信息fileMenu.addAction(newAction)      # 将"New"动作添加到"File"菜单中# 创建一个名为"Edit"的子菜单editMenu = QMenu('Edit', self)  # 创建子菜单中的动作copyAction = QAction('Copy', self)pasteAction = QAction('Paste', self)# 将动作添加到子菜单中editMenu.addAction(copyAction)editMenu.addAction(pasteAction)# 将子菜单添加到菜单栏中menubar.addMenu(editMenu)self.setGeometry(300, 300, 300, 200)   # 设置窗口位置和大小self.setWindowTitle('Submenu Example')   # 设置窗口标题self.show()   # 显示窗口if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

这段代码创建了一个包含子菜单的简单窗口应用程序。让我逐行解释:

  1. fileMenu = menubar.addMenu('File'): 添加一个名为"File"的菜单。
  2. newAction = QAction('New', self): 创建一个名为"New"的动作,并将其与当前窗口关联。
  3. newAction.setStatusTip('New File'): 设置动作的提示信息为"New File"。
  4. fileMenu.addAction(newAction): 将"New"动作添加到"File"菜单中。
  5. editMenu = QMenu('Edit', self): 创建一个名为"Edit"的子菜单,并将其与当前窗口关联。
  6. copyAction = QAction('Copy', self): 创建一个名为"Copy"的动作,并将其与当前窗口关联。
  7. pasteAction = QAction('Paste', self): 创建一个名为"Paste"的动作,并将其与当前窗口关联。
  8. editMenu.addAction(copyAction): 将"Copy"动作添加到子菜单中。
  9. editMenu.addAction(pasteAction): 将"Paste"动作添加到子菜单中。
  10. menubar.addMenu(editMenu): 将子菜单添加到菜单栏中。

运行结果如下

在这里插入图片描述

3. 勾选菜单

勾选菜单通常用于表示某个选项的状态,比如启用或禁用、选中或未选中等。在PyQt5中,可以使用QAction类的setCheckable(True)方法将动作设置为可勾选状态。下面是一个包含勾选菜单的PyQt5示例,

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QMenuclass Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):                # 初始化UIself.statusBar().showMessage('Ready')     # 状态栏显示消息menubar = self.menuBar()    # 创建菜单栏viewMenu = menubar.addMenu('View')       # 添加一个名为"View"的菜单# 创建一个名为"Show Status Bar"的动作,并设置为可勾选状态showStatusBarAction = QAction('Show Status Bar', self, checkable=True)       showStatusBarAction.setChecked(True)   # 初始设置为勾选状态showStatusBarAction.setStatusTip('Show/Hide Status Bar')   # 设置提示信息# 将动作添加到"View"菜单中viewMenu.addAction(showStatusBarAction)# 将动作的状态切换与自定义的函数相连showStatusBarAction.triggered.connect(self.toggleStatusBar)self.setGeometry(300, 300, 300, 200)   # 设置窗口位置和大小self.setWindowTitle('Checkable Menu Example')   # 设置窗口标题self.show()   # 显示窗口def toggleStatusBar(self, state):       # 定义一个函数用于切换状态栏的显示与隐藏if state:self.statusBar().show()else:self.statusBar().hide()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

这段代码创建了一个具有勾选菜单的简单窗口应用程序,其中

  1. viewMenu = menubar.addMenu('View'): 添加一个名为"View"的菜单。
  2. showStatusBarAction = QAction('Show Status Bar', self, checkable=True): 创建一个名为"Show Status Bar"的动作,并将其与当前窗口关联,设置为可勾选状态。
  3. showStatusBarAction.setChecked(True): 初始设置为勾选状态。
  4. showStatusBarAction.setStatusTip('Show/Hide Status Bar'): 设置动作的提示信息为"Show/Hide Status Bar"。
  5. viewMenu.addAction(showStatusBarAction): 将"Show Status Bar"动作添加到"View"菜单中。
  6. showStatusBarAction.triggered.connect(self.toggleStatusBar): 将动作的"triggered"信号连接到自定义的toggleStatusBar函数。
  7. def toggleStatusBar(self, state):: 自定义的函数,用于切换状态栏的显示与隐藏,接受一个状态参数。
  8. if state:: 检查状态参数是否为真(勾选)。
  9. self.statusBar().show(): 如果状态为真,显示状态栏。
  10. else:: 如果状态为假(未勾选)。
  11. self.statusBar().hide(): 隐藏状态栏。

运行结果如下

在这里插入图片描述

4. 右键菜单

右键菜单是当用户在应用程序中右键单击时出现的上下文菜单,通常用于提供与当前上下文相关的操作选项。在PyQt5中,可以使用QMenu类创建右键菜单。下面是一个包含右键菜单的PyQt5示例,

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenuclass Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):                # 初始化UIself.statusBar().showMessage('Ready')     # 状态栏显示消息self.setGeometry(300, 300, 300, 200)   # 设置窗口位置和大小self.setWindowTitle('Right-click Menu Example')   # 设置窗口标题self.show()   # 显示窗口def contextMenuEvent(self, event):       # 重写contextMenuEvent方法以响应右键单击事件contextMenu = QMenu(self)        # 创建右键菜单newAct = contextMenu.addAction('New')    # 添加一个动作到右键菜单中openAct = contextMenu.addAction('Open')    # 添加一个动作到右键菜单中quitAct = contextMenu.addAction('Quit')    # 添加一个动作到右键菜单中,表示退出应用程序action = contextMenu.exec_(self.mapToGlobal(event.pos()))   # 显示右键菜单并获取用户的动作选择if action == quitAct:     # 如果用户选择了退出动作QApplication.instance().quit()    # 退出应用程序if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

这段代码创建了一个具有右键菜单的简单窗口应用程序,其中

  1. def contextMenuEvent(self, event):: 重写contextMenuEvent方法以响应右键单击事件。
  2. contextMenu = QMenu(self): 创建右键菜单。
  3. newAct = contextMenu.addAction('New'): 向右键菜单中添加一个名为"New"的动作。
  4. openAct = contextMenu.addAction('Open'): 向右键菜单中添加一个名为"Open"的动作。
  5. quitAct = contextMenu.addAction('Quit'): 向右键菜单中添加一个名为"Quit"的动作,表示退出应用程序。
  6. action = contextMenu.exec_(self.mapToGlobal(event.pos())): 显示右键菜单并获取用户的动作选择,mapToGlobal(event.pos())用于将事件的坐标转换为全局坐标。
  7. if action == quitAct:: 检查用户选择的动作是否为退出动作。
  8. QApplication.instance().quit(): 如果用户选择退出动作,则通过QApplication实例退出应用程序。

运行程序如下

在这里插入图片描述

5. 工具栏

工具栏是GUI应用程序中的常见部分,用于快速访问常用功能或命令。在PyQt5中,可以使用QToolBar类创建工具栏,并向其添加工具按钮、分隔符等。下面是一个包含工具栏的PyQt5示例,

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QActionclass Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):                # 初始化UIself.statusBar().showMessage('Ready')     # 状态栏显示消息self.toolbar = self.addToolBar('ToolBar')     # 创建工具栏# 创建一个名为"New"的工具按钮newAction = QAction('New', self)       newAction.setStatusTip('New File')   # 设置提示信息# 创建一个名为"Open"的工具按钮openAction = QAction('Open', self)       openAction.setStatusTip('Open File')   # 设置提示信息# 创建一个名为"Save"的工具按钮saveAction = QAction('Save', self)       saveAction.setStatusTip('Save File')   # 设置提示信息# 向工具栏添加工具按钮self.toolbar.addAction(newAction)self.toolbar.addAction(openAction)self.toolbar.addAction(saveAction)self.setGeometry(300, 300, 300, 200)   # 设置窗口位置和大小self.setWindowTitle('Tool Bar Example')   # 设置窗口标题self.show()   # 显示窗口if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

这段代码创建了一个简单的窗口应用程序,其中包含一个工具栏,其中

  1. self.toolbar = self.addToolBar('ToolBar'): 创建一个名为"ToolBar"的工具栏。
  2. newAction = QAction('New', self): 创建一个名为"New"的工具按钮,并将其与当前窗口关联。
  3. newAction.setStatusTip('New File'): 设置工具按钮的提示信息为"New File"。
  4. openAction = QAction('Open', self): 创建一个名为"Open"的工具按钮,并将其与当前窗口关联。
  5. openAction.setStatusTip('Open File'): 设置工具按钮的提示信息为"Open File"。
  6. saveAction = QAction('Save', self): 创建一个名为"Save"的工具按钮,并将其与当前窗口关联。
  7. saveAction.setStatusTip('Save File'): 设置工具按钮的提示信息为"Save File"。
  8. self.toolbar.addAction(newAction): 向工具栏添加"New"工具按钮。
  9. self.toolbar.addAction(openAction): 向工具栏添加"Open"工具按钮。
  10. self.toolbar.addAction(saveAction): 向工具栏添加"Save"工具按钮。

运行程序结果如下

在这里插入图片描述

这篇关于PyQt5菜单与工具栏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976110

相关文章

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

Windows如何添加右键新建菜单

Windows如何添加右键新建菜单 文章目录 Windows如何添加右键新建菜单实验环境缘起以新建`.md`文件为例第一步第二步第三步 总结 实验环境 Windows7 缘起 因为我习惯用 Markdown 格式写文本,每次新建一个.txt后都要手动修改为.md,真的麻烦。如何在右键新建菜单中添加.md选项呢? 网上有很多方法,这些方法我都尝试了,要么太麻烦,要么不凑效

【Python篇】PyQt5 超详细教程——由入门到精通(终篇)

文章目录 PyQt5超详细教程前言第9部分:菜单栏、工具栏与状态栏9.1 什么是菜单栏、工具栏和状态栏9.2 创建一个简单的菜单栏示例 1:创建带有菜单栏的应用程序代码详解: 9.3 创建工具栏示例 2:创建带有工具栏的应用程序代码详解: 9.4 创建状态栏示例 3:创建带有状态栏的应用程序代码详解: 9.5 菜单栏、工具栏与状态栏的结合示例 4:完整的应用程序界面代码详解: 9.6 总结

【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)

文章目录 PyQt5超详细教程前言第7部分:生成图表与数据可视化7.1 matplotlib 与 PyQt5 的结合7.2 在 PyQt5 中嵌入 matplotlib 图表示例 1:嵌入简单的 matplotlib 图表代码详解: 7.3 动态生成图表示例 2:动态更新图表代码详解: 7.4 在应用程序中展示不同类型的图表示例 3:展示不同类型的图表代码详解: 7.5 总结 第8部分:对话

【Python篇】PyQt5 超详细教程——由入门到精通(序篇)

文章目录 PyQt5 超详细入门级教程前言序篇:1-3部分:PyQt5基础与常用控件第1部分:初识 PyQt5 和安装1.1 什么是 PyQt5?1.2 在 PyCharm 中安装 PyQt51.3 在 PyCharm 中编写第一个 PyQt5 应用程序1.4 代码详细解释1.5 在 PyCharm 中运行程序1.6 常见问题排查1.7 总结 第2部分:创建 PyQt5 应用程序与布局管理2

【YOLO 系列】基于YOLOV8的智能花卉分类检测系统【python源码+Pyqt5界面+数据集+训练代码】

前言: 花朵作为自然界中的重要组成部分,不仅在生态学上具有重要意义,也在园艺、农业以及艺术领域中占有一席之地。随着图像识别技术的发展,自动化的花朵分类对于植物研究、生物多样性保护以及园艺爱好者来说变得越发重要。为了提高花朵分类的效率和准确性,我们启动了基于YOLO V8的花朵分类智能识别系统项目。该项目利用深度学习技术,通过分析花朵图像,自动识别并分类不同种类的花朵,为用户提供一个高效的花朵识别

如何在Qt的widget上右键显示菜单

如何在Qt的widget上右键显示菜单 今天早上一来,我老大叫我在widget上点击右键加上一个菜单,并相应其响应的功能,因为我成刚接触Qt,所以看了下QtGUI编程这本书,做出来,记录下来,说不定哪天还用得上啊! 废话不多说,直接上代码: 方法一: m_text = QTextCodec::codecForLocale(); ui->tableWidget->addAction(ne

java AWT PopupMenu(右键菜单)

右键菜单使用PopupMenu对象表示,创建步骤如下: (1)创建PopupMenu的实例。 (2)创建多个MenuItem的多个实例,依次将这些实例加入到PopupMenu中。 (3)将PopupMenu加入到目标组件中。 (4)为需要出现上下文菜单的组件编写鼠标监听器,当用户释放鼠标右键时弹出右键菜单。 package javaAWT;import java.awt.BorderLa

java AWT菜单

菜单条,菜单和菜单项: MenuBar:菜单条,菜单的容器。 Menu:菜单组件,菜单项的容器。它也是MenuItem的子类,所以可作为菜单项使用。 PopupMenu:上下文菜单组件(右键菜单组件)。 MenuItem:菜单项组件。 CheckboxMenuItem:复选框菜单项组件。 MenuShortcut:菜单快捷组件。 Menu,MenuItem的构造器都可以接收一个字符串

JQuery.HoverDir库实现侧边栏二级菜单

Jquery.hoverDir响应鼠标移动方向的悬停效果插件 HTML代码 <div id="sidebar"><div class="mainNavs"><div class="menubox"><div class="menu_main"><h2>技术<span></span></h2><a href="#">Java</a><a href="#">PHP</a><a href="#"