PyQt5可视化编程-菜单和工具栏

news2025/2/25 9:32:55

一、简介
PyQt5 是Digia的一套Qt5与python绑定的应用框架,同时支持2.x和3.x。本教程使用的是3.x。Qt库由Riverbank Computing开发,
是最强大的GUI库之一 ,官方网站:www.riverbankcomputing.co.uk/news。
PyQt5是由一系列Python模块组成。超过620个类,6000和函数和方法。能在诸如Unix、Windows和Mac OS等主流操作系统上运行。
PyQt5有两种证书,GPL和商业证书。
二、PyQt5类中的模块:
PyQt5类中的主要模块有:
1.QtCore 包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用。
2.QtGui 包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类。
QtWidgets         类包含了一系列创建桌面应用的UI元素。
QtMultimedia      包含了处理多媒体的内容和调用摄像头API的类。
QtBluetooth       模块包含了查找和连接蓝牙的类。
QtNetwork         包含了网络编程的类,这些工具能让TCP/IP和UDP开发变得更加方便和可靠。
QtPositioning     包含了定位的类,可以使用卫星、WiFi甚至文本。
Engine            包含了通过客户端进入和管理Qt Cloud的类。
QtWebSockets      包含了WebSocket协议的类。
QtWebKit          包含了一个基WebKit2的web浏览器。
QtWebKitWidgets   包含了基于QtWidgets的WebKit1的类。
QtXml             包含了处理xml的类,提供了SAX和DOM API的工具。
QtSvg             提供了显示SVG内容的类,Scalable Vector Graphics(SVG)是一种是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式(这句话来自于维基百科)。
QtSql             提供了处理数据库的工具。
QtTest            提供了测试PyQt5应用的工具
三、PyQt5中的菜单和工具栏
这个章节,我们会创建状态栏、菜单和工具栏。菜单是一组位于菜单栏的命令。工具栏是应用的一些常用工具按钮。状态栏显示一些状态信息,通常在应用的底部。
(1)状态栏:状态栏是用来显示应用的状态信息的组件。
状态栏是由QMainWindow创建的:self.statusBar().showMessage('Ready')
调用 QtGui.QMainWindow 类的 statusBar() 方法,创建状态栏。第一次调用创建一个状态栏,返回一个状态栏对象。showMessage() 方法在状态栏上显示一条信息

(2)菜单栏:菜单栏是非常常用的。是一组命令的集合。
exitAct = QAction(QIcon('img/1.png'), '&Exit', self)#创建图标和exit标签
exitAct.setShortcut('Ctrl+Q')#创建快捷键组合
exitAct.setStatusTip('Exit application')#创建状态栏
当鼠标悬停在菜单栏的时候,能显示当前状态。当执行这个指定的动作时,就触发了一个事件。这个事件跟 QApplication的quit() 行为相关联,所以这个动作就能终止这个应用。
exitAct.triggered.connect(qApp.quit)
menuBar()创建菜单栏。这里创建了一个菜单栏,并在上面添加了一个file菜单,并关联了点击退出应用的事件。
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAct)

 
(3)子菜单:子菜单是嵌套在菜单里面的二级或者三级等的菜单。
使用 QMenu 创建一个新菜单
impMenu = QMenu('Import', self)
使用 addAction 添加一个动作
impAct = QAction('Import mail', self)
impMenu.addAction(impAct)


(4)勾选菜单:
行为/动作能切换状态栏显示或者隐藏。用 checkable 选项创建一个能选中的菜单。
viewStatAct = QAction('View statusbar', self, checkable=True)
默认设置为选中状态:viewStatAct.setChecked(True)
依据选中状态切换状态栏的显示与否:
def toggleMenu(self, state):
    if state:
        self.statusbar.show()
    else:
        self.statusbar.hide()

 
(5)右键菜单:
右键菜单也叫弹出框,是在某些场合下显示的一组命令。例如,浏览器里,网页上的右键菜单里会有刷新,返回或者查看页
面源代码。如果在工具栏上右键,会得到一个不同的用来管理工具栏的菜单。
使用 exec_() 方法显示菜单。从鼠标右键事件对象中获得当前坐标。 mapToGlobal() 方法把当前组件的相对坐标转换为窗口(window)的绝对坐标。
action = cmenu.exec_(self.mapToGlobal(event.pos()))
如果右键菜单里触发了事件,也就触发了推出事件,我们就关闭菜单。
if action == quitAct:qApp.quit()


(6)工具栏:菜单栏包含了所有的命令,工具栏就是常用的命令的集合。
退出图标并绑定快捷键:
exitAct = QAction(QIcon('img/1.png'), 'Exit', self)
exitAct.setShortcut('Ctrl+Q')
exitAct.triggered.connect(qApp.quit)
创建工具栏并将图标展示在工具栏中:
self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(exitAct)


汇总:
主窗口:QMainWindow 提供了主窗口的功能,使用它能创建一些简单的状态栏、工具栏和菜单栏。主窗口是下面这些窗口的合称。
QAction是菜单栏、工具栏或者快捷键的动作的组合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Allegro上如何让飞线以方框形式显示

Allegro上如何让飞线以方框形式显示 Allegro可以让飞线以方框形式显示,让走线评估更简单,尤其是电源和地,如下图 选择Edit-Property Find选择Nets 选择需要改成方框显示的网络,左边选择Voltage,Value里面输入任意一个数字,比如0或者1,apply 可以看到网络已经显示成…

八.调试的技巧

目录 一.调试 1.何为调试? 2.调试的基本步骤 二.debug和release的介绍 三.Windows环境调试介绍 1.调试环境准备 2.学会快捷键 (1)F5 (2)F9 (3)F10 (4)F11 &am…

【Java学习】JavaWeb ---- JDBC

文章目录JDBC 快速入门ResultSet数据连接池JDBC 快速入门 下载jar包(百度)->add as library 代码 package com.ith.jdbc;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;public class demo1 {public stati…

HTTPS一定安全吗

https是一种通过计算机网络进行安全通信的传输协议,主要目的是提供对网站服务器的身份认证,保护交换数据的隐私与完整性,但不能说使用htttps就一定绝对的安全。 有一点需要了解的是,使用HTTPS 在内容传输的加密上使用的是对称加密…

使用dreamweaver制作采用DIV+CSS进行布局——美食甜品店铺加盟企业HTML静态网页 ——学生美食网页设计作品静态HTML网页模板源码

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…

C++标准库分析总结(九)——<适配器>

目录 1 适配器简介 2 适配器使用分类 2.1 容器适配器 2.2 函数适配器 2.2.1 常见的函数适配器 2.2.2 bind2nd 2.2.3 not1 2.2.4 bind用法 2.3 迭代器适配器 2.4 X适配器 1.6.1 ostream_iterator 1.6.2 istream_iterator 1 适配器简介 把一个原本存在的东西&#xf…

递归和排序算法的应用

一、递归常见问题和注意事项 1. 堆栈溢出; 2. 警惕重复运算: 可以使用一个数据结构(散列表)将已经计算过的f(k)保存起来,每当调用到f(k)时,先产看下是否已经求结果,从而避免重复计算。 3. 将递…

【嵌入式Linux】5.Ubuntu 交叉编译工具链安装

前言 交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。 其基本特点是: 1、它肯定是一个 GCC 编译器。 2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。 3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可…

MongoDB 的安装、启动与连接

MongoDB 的安装、启动与连接一、MongoDB Community Server1. 安装(1) 下载(2) 安装1) 解压2) 配置环境变量3) 配置数据库存放目录a. 创建b. 赋权2. 启动验证二、MongoDB Compass安装三、连接一、MongoDB Community Server 1. 安装 (1) 下载 官网下载安装 (2) 安装 1) 解压…

three.js之访问几何体数据与几何体的旋转平移

文章目录访问几何体数据简介例子BoxGeometryPlaneBufferGeometry旋转、缩放、平移变换注意专栏目录请点击 访问几何体数据 简介 一般我们在开发项目的时候,可能会加载外部模型,这个时候,我们就需要获取到几何体的顶点数据这个时候&#xff…

Kubernetes入门

文章目录1、K8s快速入门1)简介2)架构(1)整体主从方式(2)master节点架构(3)Node节点架构3)概念4)快速体验(1)安装minikube(…

商城项目环境准备 — docker安装elasticsearch

文章目录一、操作系统虚拟内存设置为262144二、拉取elasticsearch镜像三、创建docker容器挂载的目录四、设置挂载文件访问权限五、启动elasticsearch六、访问一、操作系统虚拟内存设置为262144 原因:系统虚拟内存默认最大映射数为65530,无法满足ES系统要…

十万部冷知识:“梅西”是怎么炼成的

随着2022卡塔尔世界杯小组赛第二轮的打响,现在第一支确定被淘汰的队伍已经出现了,它就是东道主卡塔尔队。它也成了继南非世界杯以来,史上第二个小组赛出局的东道主。而在明天的凌晨3点C组的比赛中,广大球迷朋友们关注的阿根廷队也…

C/C++指针入门详解(一)

一、引言 指针是一个地址,这个地址不仅可以是变量的地址,也可以是其它数据结构的地址。为了方便调用这个地址,C/C是通过指针变量来使用这个地址的。而我们常说的指针,其实在一定程度上说的是指针变量,但是我们必须清楚…

通用后台管理系统前端界面Ⅺ——信息列表页(弹窗复用增改、CRUD前端基础实现)

因为需求发生了点变化&#xff0c;所以把之前的代码稍改一下&#xff0c;把之前的信息列表全复制到用户列表中&#xff0c;最后效果一样。UserList.vue <template><div class"UserList"><!-- 查询、重置 --><el-form :inline"true" :…

UnityShader_基础理论

渲染流程 此处的渲染流程只是一个概念流水线。大概分为应用阶段、几何阶段、光栅化阶段。 应用阶段 主要输出渲染所需的几何信息&#xff0c;包括点、线、三角面等&#xff0c;传递给下一阶段使用&#xff1b;这一阶段主要CPU处理&#xff0c;该阶段产生的产物就是渲染图元…

【ML特征工程】第 6 章 :降维:用 PCA 压缩数据薄饼

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Java并发-synchronized使用方法

synchronized 关键字介绍 Java 中的每个对象都可以把它当作一个同步锁来使用&#xff0c;这些 Java 内置的使用者看不到的锁被称为内部锁&#xff0c;也叫作监视器锁。代码在进入 synchronized 代码块前会自动获取内部锁&#xff0c;这时候其他线程访问该同步代码块时会被阻塞…

十七、CANdelaStudio深入-创建新工程

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio创建新工程的过程,欢迎各位朋友订阅、评论…

别卷了!今年局势不一样开始裁员濒临失业

我被优化了&#xff0c;公司劳动合同都当天解除完&#xff0c;电脑也今天全部打包完&#xff0c;非常快&#xff0c;我也是惊呆了&#xff0c;刚刚和他们部门的人吃完饭&#xff0c;感觉今天就是一场梦&#xff0c;昨天还是催着做需求&#xff0c;今天说散就散”&#xff0c;前…