【QT】progressBar的使用(13)

news2024/12/27 11:41:12

progressBar多用于记录程序运行的时间、文件下载的时间等等,今天就来看一下,如何熟练运用progressBar。

一.环境配置

1.python 3.7.8  

可直接进入官网下载安装:Download Python | Python.org

2.QT Designer 

官方下载路径:Qt Designer Download for Windows and Mac

二.实例演示

1. 这边为了方便,直接用Qt Designer 来设计串口界面的布局,如下:

 (1)该界面设计的是一个Linux文件传输功能界面,那么我们从最基础的progressBar来说,怎样让他在版本传输、下载的时候,进度条显示出来让我们清晰可见进度执行情况。

2. progressBar函数的基本操作:

​
self.progressBar.setMinimum(0)

self.progressBar.setMaximum(100)

self.progressBar.setValue(i)

​

上面三个函数的作用,我们先用英文理解一下,如下:

(1)progressBar.setMinimum(0)  :  进度条.设置最小值(0)

(2)progressBar.setMaximum(100)  : 进度条.设置最大值(100)

(3)progressBar.setValue(i)  :进度条.设置值(i)

这样去理解函数是不是轻松多了,但不是每个函数功能都能这样去理解奥,确实,如上这三个函数的功能是(1.设置进度条的最小值   2.设置进度条的最大值   3.设置进度条的值)。

2.1  progressBar运行程序:

已知上面三个函数的功能,再加入一个循环是不是就能让progressBar运行起来了呢?

​
for i in range(101):
            time.sleep(1)
            self.progressBar.setValue(i)  # 发送进度条的值 信号

​

 这样通过简单的循环,确实能让我们的进度条运行起来,但怎样结合程序运用起来呢,看一个文件传输、下载的例子,来更深入的了解一下。

3.  编辑Qt Designer生成的.py文件:

(1)如果想要保持文件下载和UI界面progressBar同步执行更新,我们这边加入多线程:

self.threading_1 = Worker()
self.threading_1.progressBarValue.connect(self.copy_file)

 

(2)进度条更新

def copy_file(self, i):
        self.progressBar.setValue(i)

(3)进度条执行主程序:

class Worker(QThread):

    progressBarValue = pyqtSignal(int)  # 更新进度条

    def __init__(self):
        super(Worker, self).__init__()


    def run(self):
        for i in range(101):
            time.sleep(1)
            self.progressBarValue.emit(i)  # 发送进度条的值 信号

根据我们的文件下载时长来定义时间,传输设置 progressBar的值。

(4)主程序main.py:

if __name__ == '__main__':

    app = QApplication(sys.argv)

    MainWindow = QMainWindow()
    ui = xxx.Ui_MainWindow()
    ui.setupUi(MainWindow)
    

    MainWindow.show()##显示
    test_one = threading.Thread(target=xxx)
    
    test_two = threading.Thread(target=xxx)

    sys.exit(app.exec_())##退出界面

 执行:

 

当我们点击下载,多线程任务,文件在下载的同时更新progressBar的值。

 

三.总结

这边通过简单的程序来说明progressBar的使用方法,也欢迎大家互相交流学习。

@Neng

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

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

相关文章

三维模型OSGB格式轻量化的跨平台兼容性技术分析

三维模型OSGB格式轻量化的跨平台兼容性技术分析 在三维模型应用中,OSGB格式轻量化处理是一种常见的技术手段,可以通过数据压缩、简化、滤波等操作,降低三维模型数据的存储空间和传输带宽需求,提高应用程序的性能和用户体验。但是&…

UaExpert使用教程

1.安装好UaExpert后,填写下列信息 2.使用UaExpert作为client连接server(server可使用KEPServerEX 模拟服务端,或自己搭建一个测试服务,测试服务搭建代码点击获取) 点击“”号 填写配置名称,双击Custom …

APP外包开发需要注意的问题

在开发APP时,有许多问题需要注意,以确保应用的质量、安全性和用户体验。以下是一些常见的APP开发需要注意的问题,以及相应的解决方案,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&#xff0…

uniapp-滑块验证组件wo-slider

wo-slider是一款支持高度自定义的滑块验证组件,采用uniapp-vue2编写 采用touchstart、touchmove、touchend事件实现的滑块组件,支持H5、微信小程序(其他小程序未试过,可自行尝试) 可到插件市场下载尝试: https://ext.…

Swift 周报 第三十五期

文章目录 前言新闻和社区五天市值蒸发 2000 亿美元,苹果公司怎么了?在你的 App 中帮助顾客解决账单问题需要声明原因的 API 列表现已推出 提案通过的提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第三十五…

算法通关村十二关 | 字符串转换

1. 转换小写字母 LeetCode709:给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 每个字母都是有确定的ASCII的,可以根据码表操作子字符串,常见的ASCII范围是: a-z: 97-122, …

LeetCode算法心得——k-avoiding 数组的最小总和(标记数组)

大家好,我是晴天学长,这是一个细节题和一部分的思维题哈! 2) .算法思路 k-avoiding 数组的最小总和 1,填充一个1到n 的Boolean的数组 要n个数,但是数组大小不能确定。 所以建立1000的大小。 2.遍历筛选,如果数组中有这…

中型敏捷GenAI模型:面向企业垂直领域应用的实用型AI

编者按:人工智能领域近年来模型规模不断增大,参数规模爆炸式增长。从 GPT-3 的 1,750 亿,再到传闻中的 GPT-4 可能高达惊人的 18,000 亿参数。然而,随着模型规模的不断膨胀,也出现了训练成本高昂、环境影响大、应用部署…

使用fdisk分区时,确实创建了一个分区,但是这个分区似乎并没有被Linux系统识别解决方法

使用fdisk分区时,确实创建了一个分区,但是这个分区似乎并没有被Linux系统识别解决方法 故障现象描述 这是我的sdb硬盘我想给他扩展一个分区sdb4 我开始扩展硬盘 似乎没用什么太大的问题也同步到磁盘了使用lsblk查看一下分区情况 系统并没有扫描到sdb4这…

Linux安装Net7SDK运行Net项目

安装Net7 SDK 1.安装sdk依赖环境 wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb2.安装 SDK sudo apt-get update &…

Grafana 安装配置教程

Grafana 安装配置教程 一、介绍二、Grafana 安装及配置2.1 下载2.2 安装2.2.1 windows安装 - 图形界面2.2.2 linux安装 - 安装脚本 三、Grafana的基本配置3.1 登录3.2 Grafana设置中文 四、grafana基本使用 一、介绍 Grafana是一个通用的可视化工具。对于Grafana而言&#xff0…

数据库国产化应用改造实践

近年来,随着国产化大潮不断推进和数据库分布式技术趋势发展,越来越多的企业开始选择国产数据库替换原有数据库。然而,核心数据库迁移又是“令人闻风丧胆”的IT操作,稍有不慎就有“删库跑路”的巨大破坏性。 由于国产数据库主要采用…

什么是SVM(支持向量机)

什么是SVM(支持向量机) 想要知道新拿到的水果是梨还是苹果,除了用KNN画个圈,还有什么好办法? 画条线好像也不错,通过将两者所在的空间做出区分。当新样本落在苹果一侧时,我们就认为它是苹果,反之就认为它…

10,000,000只800G光模块市场需求,你准备好了吗?

从今年5月起,各行业关于800G光模块的新闻此起彼伏,不断被讨论。华工正源、中际旭创、Coherent等公司纷纷发布公告提交业绩/投资调研会议记录,光迅6月也发布公告解释为何其股票突然大幅增长。到底是发生了什么事情,造成如此大的轰动…

爬虫异常处理:异常捕获与容错机制设计

作为一名专业的爬虫程序员,每天使用爬虫IP面对各种异常情况是我们每天都会遇到的事情。 在爬取数据的过程中,我们经常会遇到网络错误、页面结构变化、被反爬虫机制拦截等问题。在这篇文章中,我将和大家分享一些关于如何处理爬虫异常情况的经…

【操作系统】进程的基本概念进程的状态与转换进程的组织方式

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 操作系统 一、进程1.1概念1.2组成1.3特征 二、进程…

LLM生成式 AI 项目生命周期Generative AI project lifecycle

在本课程的其余部分中,您将学习开发和部署LLM驱动应用所需的技巧。在这个视频中,您将了解一个能帮助您完成此工作的生成式AI项目生命周期。此框架列出了从构思到启动项目所需的任务。到课程结束时,您应该对您需要做的重要决策、可能遇到的困难…

海外ios应用商店优化排名因素之应用名称

当我们的应用出现在搜索结果中时,用户会更详细地查看并转到我们的应用程序页面,引入页面视图,点击下载应用,或者是直接忽略。所以在获得曝光度之后如何决定完全取决于优化因素,例如应用图标、屏幕截图和视频预览以及其…

Leetcode74. 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 class…

Java学习笔记36

Java笔记36 网络编程 概述 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机…