16. 进度条控件

news/2025/1/6 22:50:51/文章来源:https://www.cnblogs.com/FlurryHeart/p/18652494

一、进度条控件

  进度条控件控件主要显示任务的执行进度,PySide6 中提供了进度条控件(QProgressBar)。进度条控件通常在执行长时间任务时,用进度条告诉用户当前的进展情况。

  我们可以在终端中使用 pip 安装 pyside6 模块。

pip install pyside6

  用 QProgressBar 类创建实例对象的方法如下:

QProgressBar(parent:QWidget=None)

  其中,parent窗口 或者 容器 类控件。

  QProgressBar 类的常用方法及其说明如下:

# 实例方法
minimum() -> int                                            # 获取最小值
maximum() -> int                                            # 获取最大值
value() -> int                                              # 获取值
text() -> str                                               # 获取文本
orientation() -> Qt.Orientation                             # 获取方向
setAlignment(alignment:Qt.Alignment) -> None                # 设置对齐方式
alignment() -> Qt.Alignment                                 # 获取对齐方式
setFormat(format:str) -> None                               # 设置文本的格式
format() -> str                                             # 获取文本的格式
resetFormat() -> None                                       # 重置文本的格式
setInvertedAppearance(invert:bool) -> None                  # 设置外观是否反转
invertedAppearance() -> bool                                # 获取外观是否反转
setTextDirection(textDirection:Qt.TextDirection) -> None    # 设置进度条文本方向
textDirection() -> Qt.TextDirection                         # 获取进度条文本方向
setTextVisible(visible:bool) -> None                        # 设置进度条文本是否可见
isTextVisible() -> bool                                     # 获取进度条文本是否可见# 槽函数
setMinimum(minimum:int) -> None                             # 设置最小值
setMaximum(maximum:int) -> None                             # 设置最大值
setRange(minimum:int, maximum:int) -> None                  # 设置范围
setValue(value:int) -> None                                 # 设置值
setOrientation(orientation:Qt.Orientation) -> None          # 设置方向
reset() -> None                                             # 重置进度条,返回初始位置

  用 setOrientation(Qt.Orientation) 方法可以设置进度条的方向,参数 Qt.Orientation 可以取 Qt.Orientation.HorizontalQt.Orientation.Vertical ;用 setTextDirection(QProgressBar.Direction) 方法设置进度条上文本的方向,参数 QProgressBar.Direction 可以取 QProgressBar.Direction.TopToBottomQProgressBar.Direction.BottomToTop,分别表示文本顺时针旋转 90° 和逆时针旋转 90°。设置文本在进度条上的对齐方式可以用 setAlignment(Qt.Alignment) 方法,如果 Qt.AlignmentQt.Alignment.AlignHCenter,文本将会放置到进度条的中间。

  用 setFormat(str) 方法设置显示的文字格式,在文字中 %p% 表示 百分比值%v 表示 当前值%m 表示 总数,默认显示的是 %p%;获取文本格式用 format() 方法;获取格式化的文本用 text() 方法。

  QProgressBar 控件中常用的信号及其说明如下:

valueChanged(value)        # 进度条的值发生改变时发射
import sysfrom PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtWidgets import QProgressBar
from PySide6.QtCore import QTimer, Qtclass MyWidget(QWidget):def __init__(self):# 1.调用父类Qwidget类的__init__()方法super().__init__()# 2.调用setupUi()方法初始化页面self.setup_ui()self.count = 0# 3.创建一个定时器对象self.timer = QTimer()# 4.启动定时器self.timer.start(1000)# 5.关联信号self.timer.timeout.connect(self.change_progressBar)def setup_ui(self):# 1.设置窗口对象大小self.resize(700, 500)# 2.创建进度条控件self.progressBar = QProgressBar(self)self.progressBar.resize(500, 30)# 3.设置进度条范围self.progressBar.setRange(0, 100)# 4.设置进度条的当前值self.progressBar.setValue(0)# 5.设置进度条的文字显示格式self.progressBar.setFormat("%v%")# 6.设置对齐方式self.progressBar.setAlignment(Qt.AlignmentFlag.AlignLeft)# 7.设置进度条的布局方向self.progressBar.setLayoutDirection(Qt.LayoutDirection.LeftToRight)# 8.设置进度条的显示方向self.progressBar.setOrientation(Qt.Orientation.Horizontal)# 9.设置进度条是否以反方向显示进度self.progressBar.setInvertedAppearance(False)# 10.设置进度条文本显示方向self.progressBar.setTextDirection(QProgressBar.Direction.TopToBottom)# 11.获取进度条的最小值,最大值,当前值print(self.progressBar.minimum(), self.progressBar.maximum(), self.progressBar.value())# 12.定义信号与槽的连接self.progressBar.valueChanged.connect(self.valueChanged)def change_progressBar(self):self.count += 1if self.count <= 100:self.progressBar.setValue(self.count)else:self.count = 0self.progressBar.reset()def valueChanged(self, value):print("进度条的值改变了,当前值为:", value)if __name__ == "__main__":# 1.创建一个QApplication类的实例app = QApplication(sys.argv)# 2.创建一个窗口window = MyWidget()# 3.展示窗口window.show()# 4.进入程序的主循环并通过exit()函数确保主循环安全结束sys.exit(app.exec())

如果最小值和最大值都设置为 0,那么进度条会显示为一个不断循环滚动的繁忙状态;

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已读乱回

我将safetensors格式的TableGPT2-7B通过llama.cpp转换成gguf

python-selenium (1、配置环境)

准备如下: 1、python以及开发工具PyCharm 2、浏览器以及对应的浏览器驱动 3、下载selenium工具包注意: 浏览器与浏览器驱动 需要版本一致,以goole为例, https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json 这个网站里面有对应谷…

12306分流抢票软件 bypass v1.16.43 绿色版(春节自动抢票工具)

软件介绍 12306Bypass分流抢票软件,易操作强大的12306抢票软件,全程自动抢票,云识别验证码打码,多线程秒单、稳定捡漏,支持抢候补票、抢到票自动付款,支持多天、多车次、多席别、多乘客、短信提醒等功能。1、Bypass分流抢票本身附带云识别模块帮助识别,但实际测试即便是…

这是怎么回事

我只输入了你好

网络_浏览器的通信能力

本文主要介绍了浏览器的通信能力,包括用户代理、AJAX,在用户代理中浏览器具有自动发送请求的能力和自动解析响应的能力;在AJAX中主要有两种实现方式,分别是XMLHttpRequest和Fetch;另外介绍了XML可以监控请求进度可用于文件上传进度的监控,Fetch更擅长处理异步代码具有流的…

(LocalDB)\MSSQLLocalDB相关

系统数据库路径:C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB 用户数据库默认路径:C:\Users\Administrator 连接字符串:<connectionStrings><add name="AAA" connectionString="data sou…

Mind(信息收集篇)

对于在信息收集中所学习知识点做一总结。免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正! 七、Mind(信息收集篇)

VOLTE中eSRVCC相关的一些知识点

注:本文中的SRVCC都是指eSRVCC方案。 SRVCC相关的3GPP规范有:3GPP TS 23.216 SRVCC 3GPP TS 23.856 “Single Radio Voice Call Continuity (SRVCC) enhancement; Stage2.” 3GPP TS 23.237 IMS Service Continuity Stage 2 3GPP TS 24.237 IMS Service Continuity Stage 3详…

信息收集补充思路

引子:前几章分别介绍了针对不同目标的信息收集内容&方式&工具,本章内容则并非针对某一具体目标,而是对前几章信息收集思路&方式的补充。免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ p…

JVM实战—10.MAT的使用和JVM优化总结

大纲 1.线上大促活动导致的老年代内存泄漏和FGC(MAT分析出本地缓存没处理好) 2.百万级数据误处理导致频繁FGC(大数据量加载到内存处理 + String.split()) 3.JVM运行原理和GC原理总结 4.JVM性能优化的思路和步骤 5.问题汇总1.线上大促活动导致的老年代内存泄漏和FGC(MAT分析出本…

请问数据库迁移后无法登录的问题及解决方案

数据库迁移后无法登录的问题可能由多种原因引起,特别是在迁移过程中涉及到数据库结构、权限设置或配置文件的变化。为了确保顺利迁移并解决登录问题,您可以按照以下步骤进行排查和处理:确认迁移完整性: 首先,确保数据库迁移过程完整无误。检查迁移工具的日志,确认所有表、…

请问数据库连接失败的排查方法

当服务器内的数据库无法连接时,即使已经放行了3306端口,仍然可能存在其他潜在问题。为了确保数据库能够正常连接,您可以按照以下步骤进行排查和处理:确认端口放行: 首先,确保3306端口确实已经放行。使用命令行工具(如netstat -tuln | grep 3306)检查端口监听状态,确认…