QT之动态进度条

2023-11-08

简介

前两天需要接到一个需求需要做一个好看的进度条,在网上搜了一圈发现要不然就是不符合我的需求要不然就是没有源码,最后找到一个大佬写的有部分源码的,自己也折腾了一个(原文链接)。

效果图

在这里插入图片描述

思路

主要就是重写了QProcessBar的paintEvent事件,让其先执行完QProcessBar自己的绘制事件,在绘制一层光效在上面。
在内存中维护一个变量m_currvalue用来决定当前需要绘制的区域,m_currvalue不能大于进度条当前的值,然后定一个定时器QTimer,让其每隔一段时间自增一次,达到光效前进的效果,当其与进度条当前的值相等时又置为零。

关键代码

void MyProcessBar::paintEvent(QPaintEvent *e)
{
    QProgressBar::paintEvent(e);
    QStyleOptionProgressBar opt;
    initStyleOption(&opt);

    if (m_currvalue != 0)
    {
        QPainter painter(this);
        QRect rect1 = style()->subElementRect(QStyle::SE_ProgressBarContents, &opt, this);
        //QRectF rect1=this->rect();
        double _width=static_cast<double>(m_currvalue)/static_cast<double>(m_maxvalue)*rect1.width();
        QLinearGradient gradient(0,0,_width,rect1.height());
        gradient.setColorAt(0,Qt::red);
        gradient.setColorAt(1,Qt::blue);
        painter.setBrush(gradient);
        QRectF rect2=QRectF(rect1.topLeft(),QSize(static_cast<int>(_width),static_cast<int>(rect1.height())));
        rect2.adjust(0,0.8,0,-2);
        painter.drawRoundedRect(rect2, 10, 10);
        //painter.drawRect(rect);
    }

}

完整代码链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT之动态进度条 的相关文章

  • 第15章Stata时间序列分析

    目录 15 1时间序列的基本操作 案例延伸 延伸1 清除数据的时间序列格式 延伸2 关于数据处理的一般说明 延伸3 关于时间序列运算的有关说明 15 2单位根检验 1 ADF检验 2 PP检验 案例延伸 15 3协整检验 1 EF ADF检
  • 数据库关系表 ---- Relational table

    数据库关系表 Relational table 什么是关系 relation 关系 relation 的基本属性 约束 Constraints Integrity Constraints 完整性约束 Referential Integrit
  • Zookeeper分布式锁的实现

    众所周知 多个服务间的调用 产生多个JVM问题 当我们使用传统的锁的时候就会出现问题 因为跨JVM中无法可见到同一把锁 这个时候分布式锁就应运而生 例如就出现了Redis分布式锁 基于setnx的方式去实现 当然我们也可以通过zookeep
  • 稳定排序与不稳定排序方法

    这几天笔试了好几次了 连续碰到一个关于常见排序算法稳定性判别的问题 往往还是多选 对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目 当然如果你笔试之前已经记住了数据结构书上哪些是稳定的 哪些不是稳定的 做起来应该可以轻松搞定 本文
  • Qt易忘样式表总结

    目录 前言 1 Qt设置样式的几种方式 2 几种复合控件的样式设置 QTableWidget QCalendarWidget QTreeWidget QSpinBox QComboBox 前言 在使用Qt框架开发软件时 为了美观和更好的用户
  • 域名购买以及解析域名到服务器IP----史上最详细小白教程没有之一

    昨天 我师父看了我的云服务器配置的博客 给我提了个意见 我觉得非常好 以后我会在截图的时候标清楚步骤的 希望各位博友 以后可以给我多提意见 通过评论的方式也可以 我也将推出更多高质量的文章 目前目标是排名突破前10万 如果想一同学习的 欢迎
  • python后端学习(十)多继承和MRO顺序、再论静态方法和类方法、property属性及应用、魔法属性、with与“上下文管理器”

    多继承和MRO顺序 1 单独调用父类的方法 coding utf 8 print 多继承使用类名 init 发生的状态 class Parent object def init self name print parent的init开始被调
  • leetcode 周赛——2848. 与车相交的点

    题目所属分类 差分数组知识点 原题链接 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标 对于任意下标 i nums i starti endi 其中 starti 是第 i 辆车的起点 endi 是第 i 辆车
  • 宽字节注入讲解

    我讨厌现在的自己 一边压抑着自己的情绪 一边装作没事的样子 一到深夜就彻底崩溃了 天亮后还要微笑面对生活 网易云热评 一 原理 1 单字节字符集 所有的字符都使用一个字节来表示 比如 ASCII 编码 0 127 2 多字节字符集 在多字节
  • 区块链技术入门——核心概念与原理

    区块链的前世今生 密码朋克 Cypherpunk 是一个邮件组 里面有许多大牛 比特币的底层技术 点对点网络 时间戳 加密技术 工作量证明 可以应用到其他领域 将这些技术提炼出来 就提出了区块链概念 区块链不是单一的技术 而是一系列技术的集
  • ASP.NET Core快速入门(第5章:认证与授权)--学习笔记

    课程链接 http video jessetalk cn course explore 良心课程 大家一起来学习哈 任务31 课时介绍 1 Cookie based认证与授权 2 Cookie based认证实现 3 Jwt认证与授权介绍
  • TCP: SYN ACK FIN RST PSH URG

    三次握手Three way Handshake 一个虚拟连接的建立是通过三次握手来实现的 1 B gt SYN gt A 假如服务器A和客户机B通讯 当A要和B通信时 B首先向A发一个SYN Synchronize 标记的包 告诉A请求建立
  • 金属学复习【3】 --- 二元合金相图和合金的凝固

    一 合金中的相 1 相图中呈现的内容一定是处于热力学平衡态的 即系统自由能最小态 2 纯铁的改变量只有温度和压力 所以我们用温度和压力来制作纯铁的相图 把溶质融到溶剂中 形成的均匀的 单相的物质就是溶体 以特定比例形成的化合物称为化学计量比
  • Linux下执行wget无效问题

    安装好后的CentOS 7想安装个redis学习下 发现不识别wget命令 wget http xxx tar gz 原因是安装CentOS系统的时候安装的最小配置 默认没有安装wget 只需要yum y install wget即可
  • linux桌面动态,ubuntu 中设置动态壁纸

    为了开发android 功能 ubuntu系统也使用了好久时间 作为一个经常使用的系统 不捣鼓捣鼓就太平淡 根据网上的一些介绍 搞了一个动态壁纸出来 用来定时更换壁纸 首先创建一个文件夹 里面三个文件 其余根据自己喜好放入壁纸文件 第一个文
  • C语言黑科技—指针读写

    PS 本人之前对于指针的了解基本为0 更是没有实际使用过指针 后来在开发中学习到了利用指针在固定地址读取或者写入数据的方法 以及利用指针提取数组的方法 这里简单分享一下 手法可能有些粗陋 如果有大佬有其他方法欢迎留言交流 目录 1 利用指针
  • clang

    一 Clang简介 简单来说 Clang是一个编译器 目前用来编译C C Objective C语言 更进一步来说 Clang只是一个编译器前端 其将上述的C类语言编译成一种 汇编语言 中间语言 接着 通过LLVM Low Level Vi
  • Docker打包镜像的两种方式

    前言 Docker镜像是一个特殊的文件系统 既提供了运行时所需的程序 库和资源 还提供了相应的配置参数 只是不包含动态数据 我们可以将任何我们的软件产品打包成镜像 以供服务器能够用Docker直接快速安装并部署运行 System Linux
  • 学会python可以做什么工作,python能做什么项目

    python能做什么工作 现在互联网发展迅速 众多行业巨头 都已经转投到人工智能领域 而人工智能的首选编程语言就是python 所以学好Python能够从事的工作还是很多的 而且前景非常不错 学完python可以应用于以下领域 Web 和

随机推荐

  • 数组实现线程安全的栈

    package quiz 线程安全的栈实现 固定10容量 扩展容量没有用到 public class StackImplUseArray private Object objs new Object 10 栈元素 private int i
  • linux 下工具

    一 文本比较工具 命令行有 colordiff 图形化的有 meld bcompare 二 记事本 tomboy 工具 快捷键 Bold C B Italic C I Strikeout C S Highlight C H Underlin
  • Hibernate学习笔记 单表映射

    建立实体类 配置好SessionFactory之后 我们就可以开始建立一对一的单表映射了 首先需要建立一个实体类 这里Getter Setter toString equals等方法省略了 我们可以方便的使用IDEA或者Eclipse的生成
  • 【分享】ROM厂商刷机工具合集

    1 MTK刷机 SP Flash Tool下载地址 SP Flash Tool v5 1924 Download SmartPhone Flash Tool MTKClient 下载地址 Releases notmyst33d mtkcli
  • MySQL—存储引擎(下)

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 树高千尺 落叶归根人生不易 人间真情 前言 上一章讲了存储引擎 本章继续 从特点开始 目录 MySQL 1
  • 中国1-0胜新加坡

    TOM体育讯 北京时间8月16日 亚洲杯预选赛战火重新点燃 中国队在本轮比赛中坐镇天津泰达体育场迎战小组赛的又一个对手新加坡队 结果在赵旭日下半场被早早罚下 中国队以少打多的不利局面下 中国队的顽强感动了上苍 也拯救了自己 补时最后一分钟
  • 【Unity】获取相机画面将其保存成图片

    void CameraCapture Camera m Camera string filename RenderTexture rt new RenderTexture Screen width Screen height 16 m Ca
  • 抓包工具Wireshark使用体会

    这两天在工作上遇到了一些问题 必须要用抓包工具来捕获手机端发送过来的数据包 分析其帧结构 以前虽然学习过网络知识 但是也从未接触过抓包工具Wireshark 迫于工作的压力 自己在摸索中学到了一些基本的使用方法 文件格式 pcap 帧排序
  • 笔记(一)斯坦福CS224W图机器学习、图神经网络、知识图谱

    节点和连接构成的图 如何对图数据进行挖掘 传统机器学习 数据是独立同分布的 解决表格 矩阵 序列等问题 图机器学习处理连接的数据 需要满足以下几个方面 1 图是任意尺寸输入 2 图是动态变化的 有时也是多模态数据 图 可以实现端到端的表示学
  • 矩阵分析学习(补充)

    在系统分析中 会涉及到多项式矩阵互质性的判别问题 此类问题通常归结为两种 1 具有相同行数的多项式左互质 2 具有相同列数的多项式右互质 一 多项式矩阵的右公因子 左公因子 的定义 二 多项式矩阵的最大右公因子 最大左公因子 的定义 首先这
  • Asp.net 移动开发

    Asp net能进行移动开发 移动开发是手机运用 而asp net是网页开发 能合在一起吗 答案是能的 随着科技的发展 现在asp net也能进行移动开发 移动开发也称为手机开发 或叫做移动互联网开发 是指以手机 PDA UMPC等便携终端
  • 基于MATLAB的白鲸算法在太阳能光伏模型参数估计中的应用

    基于MATLAB的白鲸算法在太阳能光伏模型参数估计中的应用 本文将介绍如何使用MATLAB编写基于白鲸算法的太阳能光伏模型参数估计 并提供相应的源代码 太阳能光伏模型的参数估计是对光伏系统性能分析的重要步骤 它可以帮助我们了解和优化光伏系统
  • 如何解决redis的缓存击穿、缓存穿透、缓存雪崩等问题?

    关注我 升职加薪就是你 1 缓存击穿 指一个非常热点的key在缓存过期的一刻 同时有大量的并发请求访问该key 导致所有请求都落到了数据库上 引起数据库压力过大甚至宕机 解决方案 1 设置热点数据永不过期 2 加互斥锁 只允许一个请求去查询
  • Java获取前N个季度的开始时间和结束时间

    获取前N个季度的开始日期和结束日期 param count return private List
  • 【十大经典排序算法】C语言实现

    十大经典排序算法 插入类排序 直接插入排序 折半 二分 插入排序 希尔排序 交换类排序 冒泡排序 快速排序 选择类排序 选择排序 树形选择排序 堆排序 归并排序 计数排序 分配类排序 捅排序 基数排序 插入类排序 直接插入排序 void i
  • 关于pip安装第三方库,但PyCharm中却无法识别的问题;以及PyCharm安装第三方库的方法解析

    Table of Contents 一 问题具体描述 二 解决方法 1 方法一 在PyCharm下载第三方库 即把之前下的库作废 这里重新再下一次 2 方法二 坚持用pip的方法安装第三方库 三 扩展延伸 pip install 安装路径问
  • BP神经网络的非线性系统建模以及matlab神经网络工具箱的使用

    在所有的关系中 数学公式的线性表达是对那些规律性数据的预测统计 而非线性关系的数据 数学方程式只能通过多个参数尽可能模拟数据曲线 神经网络的非线性拟合能力不仅在于参数多还在于激活函数的非线性表达 以拟合拟合的非线性函数为 为例 BP神经网络
  • 【论文阅读 08】Defect Detection in Electronic Surfaces Using Template-Based Fourier Image Reconstruction

    比较老的一篇论文 基于模板的傅里叶图像重建电子表面的缺陷检测 关键词 缺陷检测 傅里叶变换 F T 机器视觉 印刷电路板 PCB 模板匹配 总结 1 Abstract 一种用于检测和定位非周期性模式图像中小缺陷的新方法 在电子工业中 例如在
  • 完美解决E: Unable to lock directory /var/lib/apt/lists/方案

    使用命令 sudo fuser vki var lib apt lists lock 重新执行 sudo apt update
  • QT之动态进度条

    简介 前两天需要接到一个需求需要做一个好看的进度条 在网上搜了一圈发现要不然就是不符合我的需求要不然就是没有源码 最后找到一个大佬写的有部分源码的 自己也折腾了一个 原文链接 效果图 思路 主要就是重写了QProcessBar的paintE