当前位置: 首页 > news >正文

QT实现自定义带有提示信息的透明环形进度条

1. 概述


做界面开发的童鞋可能都会遇到这样的需求,就是有一些界面点击了之后比较耗时的操作,需要界面给出一个环形进度条的进度反馈信息. 如何来实现这样的需求呢,话不多说,上效果

透明进度条

2. 代码实现


waitfeedbackprogressbar.h

#ifndef WAITFEEDBACKPROGRESSBAR_H
#define WAITFEEDBACKPROGRESSBAR_H#include <QWidget>
#include <QTimer>
#include "customcomponent_global.h"class CUSTOMCOMPONENT_EXPORT WaitFeedbackProgressBar : public QWidget
{Q_OBJECT
public:WaitFeedbackProgressBar(QWidget *parent = nullptr);~WaitFeedbackProgressBar();void start();void stop();protected:void paintEvent(QPaintEvent *event);private slots:void updaterRotation();private:QTimer *m_timer = nullptr;int m_rotation = 0;
};#endif  // WAITFEEDBACKPROGRESSBAR_H

waitfeedbackprogressbar.cpp

#include "waitfeedbackprogressbar.h"#include <QPainter>
#include <QPainterPath>WaitFeedbackProgressBar::WaitFeedbackProgressBar(QWidget *parent): QWidget(parent)
{m_timer = new QTimer;connect(m_timer, &QTimer::timeout,this, &WaitFeedbackProgressBar::updaterRotation);
}WaitFeedbackProgressBar::~WaitFeedbackProgressBar()
{if (m_timer != nullptr) {disconnect(m_timer, &QTimer::timeout,this, &WaitFeedbackProgressBar::updaterRotation);delete m_timer;m_timer = nullptr;}
}void WaitFeedbackProgressBar::start()
{if (m_timer == nullptr) {return;}m_timer->start(3);
}void WaitFeedbackProgressBar::stop()
{if (m_timer == nullptr) {return;}m_timer->stop();
}void WaitFeedbackProgressBar::updaterRotation()
{m_rotation++;if(m_rotation == 360){m_rotation = 0;}update();
}void WaitFeedbackProgressBar::paintEvent(QPaintEvent *event)
{int width = this->width();int height = this->height();int side = qMin(width, height);QPainter painter(this);painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);painter.translate(width / 2, height / 2);painter.scale(side / 200.0, side / 200.0);QConicalGradient gra(QPoint(0,0),0);gra.setColorAt(0, QColor("#3BB6FE"));gra.setColorAt(1, QColor("#FFFFFF"));QBrush brush(gra);int radis = 40;int sider = 5;QRect rect(-radis, -radis, radis * 2, radis * 2);QPainterPath path;path.arcTo(rect, 0, 270);QPainterPath subPath;subPath.addEllipse(rect.adjusted(sider, sider, -sider, -sider));path = path - subPath;painter.setBrush(brush);painter.setPen(Qt::NoPen);painter.rotate(m_rotation);painter.drawPath(path);
}

waitfeedbackdialog.h

#ifndef WAITFEEDBACKDIALOG_H
#define WAITFEEDBACKDIALOG_H#include <QDialog>
#include "dialog_global.h"namespace Ui {
class WaitFeedbackDialog;
}class DIALOG_EXPORT WaitFeedbackDialog : public QDialog
{Q_OBJECT
public:explicit WaitFeedbackDialog(QWidget *parent = nullptr);void start();void stop();signals:private:Ui::WaitFeedbackDialog *ui;
};#endif  // WAITFEEDBACKDIALOG_H

waitfeedbackdialog.cpp

#include "waitfeedbackdialog.h"
#include "ui_waitfeedbackdialog.h"WaitFeedbackDialog::WaitFeedbackDialog(QWidget *parent) :QDialog(parent),ui(new Ui::WaitFeedbackDialog)
{ui->setupUi(this);setWindowFlags(Qt::FramelessWindowHint | windowFlags());setAttribute(Qt::WA_TranslucentBackground, true);
}void WaitFeedbackDialog::start()
{ui->wgt_feedbackprogress->start();
}void WaitFeedbackDialog::stop()
{ui->wgt_feedbackprogress->stop();
}

waitfeedbackdialog.ui
在这里插入图片描述

相关文章:

QT实现自定义带有提示信息的透明环形进度条

1. 概述 做界面开发的童鞋可能都会遇到这样的需求&#xff0c;就是有一些界面点击了之后比较耗时的操作&#xff0c;需要界面给出一个环形进度条的进度反馈信息. 如何来实现这样的需求呢&#xff0c;话不多说&#xff0c;上效果 透明进度条 2. 代码实现 waitfeedbackprogressba…...

金币程序题

昨天&#xff0c;小孩问了我一个python编程竞赛题&#xff0c;我看了一下题目&#xff0c;是一个数列编程的问题&#xff0c;我在想&#xff0c;小学五年级的学生能搞得懂吗&#xff1f;反正我家小孩是没有搞懂&#xff0c;不知道别人家的小孩能不能搞明白。所以我花了一点时间…...

《Windows API每日一练》9.13资源-鼠标位图和字符串

鼠标指针位图&#xff08;Mouse Cursor Bitmap&#xff09;是用于表示鼠标指针外观的图像。在 Windows 窗口编程中&#xff0c;可以使用自定义的鼠标指针位图来改变鼠标的外观&#xff0c;并提供更加个性化的用户体验。 ■以下是一些与鼠标指针位图相关的要点&#xff1a; ●…...

【保姆级教程】CenterNet的目标检测、3D检测、关键点检测使用教程

一、代码下载 仓库地址:https://github.com/xingyizhou/CenterNet?tab=readme-ov-file 二、目标检测 2.1 下载预训练权重 下载预训练权重ctdet_coco_dla_2x.pth放到models文件夹下 下载链接:https://drive.google.com/file/d/18Q3fzzAsha_3Qid6mn4jcIFPeOGUaj1d/edit …...

thinkphp:数据库复合查询-OR的使用

完整代码 $data[info] db::table(po_headers_all)->alias(ph) //设置wip_jobs_all的别名->join([vendors > ve], ph.vendor_codeve.vendor_code)->field(ph.po_num,ph.status,ph.vendor_code,ve.vendor_name,ph.po_all_amount,ph.note,ph.order_date,ph.need_dat…...

网络安全那些梗

网络安全领域的梗往往以幽默、讽刺或夸张的方式反映了该领域的某些现象、挑战或误解。以下是一些网络安全相关的梗&#xff1a; 关掉服务器是最有效的安全方法&#xff1a;这个梗源自一个笑话&#xff0c;讲述了一位程序员因误解妻子的话而只买了一个包子回家&#xff0c;随后被…...

交通气象站:保障道路安全的智慧之眼

随着社会的快速发展&#xff0c;交通运输日益繁忙&#xff0c;道路安全成为公众关注的焦点。在这个背景下&#xff0c;交通气象站作为保障道路安全的重要设施&#xff0c;正发挥着越来越重要的作用。它们不仅为交通管理部门提供及时、准确的气象信息&#xff0c;也为广大驾驶员…...

【分库】分库的核心原则

目录 分库的核心原则 前言 分区透明性与一致性保证 弹性伸缩性与容错性设计 数据安全与访问控制机制 分库的核心原则 前言 在设计和实施分库策略时&#xff0c;遵循一系列核心原则是至关重要的&#xff0c;以确保系统不仅能够在当前规模下高效运行&#xff0c;还能够随着…...

【Linux】软件管理工具 yum

文章目录 概念搜索&#xff1a;yum list安装&#xff1a;yum install卸载&#xff1a;yum remove 概念 在Linux下安装软件&#xff0c;可以下载到程序的源代码&#xff0c;进行编译得到可执行程序&#xff0c;另外这些软件还有依赖其它工具的问题&#xff0c;还得下载编译这些依…...

LangChain —— Prompt Templates

文章目录 一、什么是 Prompt Templates1、String PromptTemplates2、ChatPromptTemplates3、MessagesPlaceholder 留言占位符 二、如何使用 Prompt Templates1、使用几个简短示例2、在 chat model 中使用几个简短示例3、部分格式化提示模板4、一起编写提示 一、什么是 Prompt T…...

Python库 - Scrapy

Scrapy 是一个用于爬取网站数据、提取结构性数据的开源和协作框架。它最初是为网页抓取设计的&#xff0c;但也可以用于获取 API 提供的数据或作为通用的网络爬虫。 文章目录 主要特性主要组件使用流程1. 安装 Scrapy2. 创建 Scrapy 项目3. 定义 Item&#xff08;数据&#xff…...

函数(实参以及形参)

实际参数&#xff08;实参&#xff09; 实际参数就是在调用函数时传递给函数的具体值。这些值可以是常量、变量、表达式或更复杂的数据结构。实参的值在函数被调用时传递给对应的形参&#xff0c;然后函数内部就可以使用这些值来执行相应的操作。 int main() {int a 0;int b …...

ArcGIS Pro SDK (八)地理数据库 8 拓扑

ArcGIS Pro SDK &#xff08;八&#xff09;地理数据库 8 拓扑 文章目录 ArcGIS Pro SDK &#xff08;八&#xff09;地理数据库 8 拓扑1 开放拓扑和进程定义2 获取拓扑规则3 验证拓扑4 获取拓扑错误5 标记和不标记为错误6 探索拓扑图7 找到最近的元素 环境&#xff1a;Visual …...

uniapp如何发送websocket请求

方法1&#xff1a; onLoad() {uni.connectSocket({url: ws://127.0.0.1:8000/ws/stat/realTimeStat/,success: (res) > {console.log(connect success, res);}});uni.onSocketOpen(function (res) {console.log(WebSocket连接已打开&#xff01;);uni.sendSocketMessage({d…...

RabbitMQ的工作模式

RabbitMQ的工作模式 Hello World 模式 #mermaid-svg-sbc2QNYZFRQYbEib {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sbc2QNYZFRQYbEib .error-icon{fill:#552222;}#mermaid-svg-sbc2QNYZFRQYbEib .error-text{fi…...

自建搜索引擎-基于美丽云

Meilisearch 是一个搜索引擎&#xff0c;主程序完全开源&#xff0c;除了使用官方提供的美丽云服务&#xff08;收费&#xff09;进行对接之外&#xff0c;还可以通过自建搜索引擎来实现完全独立的搜索服务。 由于成本问题&#xff0c;本博客采用自建的方式&#xff0c;本文就…...

2024辽宁省大学数学建模竞赛试题思路

A题 (1) 建立模型分析低空顺风风切变对起飞和降落的影响 模型假设 飞机被视为质点&#xff0c;忽略其尺寸和形状对风阻的影响。风切变仅考虑顺风方向的变化&#xff0c;忽略其他方向的风切变。飞机的飞行速度、高度和姿态&#xff08;如迎角、俯仰角&#xff09;是变化的&am…...

循环结构(一)——for语句【互三互三】

文章目录 &#x1f341; 引言 &#x1f341; 一、语句格式 &#x1f341; 二、语句执行过程 &#x1f341; 三、语句格式举例 &#x1f341;四、例题 &#x1f449;【例1】 &#x1f680;示例代码: &#x1f449;【例2】 【方法1】 &#x1f680;示例代码: 【方法2】…...

【深度学习基础】MacOS PyCharm连接远程服务器

目录 一、需求描述二、建立与服务器的远程连接1. 新版Pycharm的界面有什么不同&#xff1f;2. 创建远程连接3. 建立本地项目与远程服务器项目之间的路径映射4.设置保存自动上传文件 三、设置解释器总结 写在前面&#xff0c;本人用的是Macbook Pro&#xff0c; M3 MAX处理器&am…...

微调Qwen2大语言模型加入领域知识

目录 试用Qwen2做推理安装LLaMA-Factory使用自有数据集微调Qwen2验证微调效果 试用Qwen2做推理 参考&#xff1a;https://qwen.readthedocs.io/en/latest/getting_started/quickstart.html from transformers import AutoModelForCausalLM, AutoTokenizer device "cuda…...

ZTE光猫工厂模式解锁:5分钟开启隐藏功能的终极指南

ZTE光猫工厂模式解锁&#xff1a;5分钟开启隐藏功能的终极指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 核心关键词&#xff1a;ZTE光猫工厂模式解锁 长尾关键词&#xff1a; ZT…...

yolo视频识别 车辆速度估计识别 yolo11视频实时速度测量与测速估计

文章目录YOLOv11&#xff1a;视频实时速度测量与测速估计一、YOLOv11概述二、速度测量原理三、距离测量方法四、应用场景五、实践案例以下是关于使用YOLOv11进行视频实时速度测量与测速估计的介绍&#xff1a; YOLOv11&#xff1a;视频实时速度测量与测速估计 随着计算机视觉…...

3分钟快速安装BetterNCM插件管理器,让你的网易云音乐功能翻倍

3分钟快速安装BetterNCM插件管理器&#xff0c;让你的网易云音乐功能翻倍 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐功能单一而烦恼吗&#xff1f;想要解锁更多个…...

万星easy-vibe:描述需求即发布 零基础无需学语法

开源Easy-Vibe是一套开源AI编程学习方案&#xff0c;把学习顺序从先学语法再做项目翻转为直接做项目。文章拆解了项目驱动、提示词编写、AI编辑器和多Agent协作的完整流程&#xff0c;解释了为什么想法比语法更重要。 github上datawhalechina/easy-vibe&#xff1a;它在GitHub…...

构建智能音乐档案:SoundCloud Downloader 的技术架构与实现哲学

构建智能音乐档案&#xff1a;SoundCloud Downloader 的技术架构与实现哲学 【免费下载链接】scdl Soundcloud Music Downloader 项目地址: https://gitcode.com/gh_mirrors/sc/scdl 在流媒体音乐主导的时代&#xff0c;音乐爱好者面临着一种矛盾&#xff1a;我们享受着…...

Unity项目实战:用TriLib插件动态加载FBX模型,5分钟搞定外部资源读取

Unity项目实战&#xff1a;用TriLib插件高效加载外部FBX模型的完整指南在VR展示、产品配置器等需要动态加载用户上传模型的场景中&#xff0c;如何快速实现外部FBX文件的读取是许多Unity开发者面临的挑战。传统的手动导入方式不仅效率低下&#xff0c;更无法满足运行时动态加载…...

Godot 4.3随机地图性能优化:避开TileMap与RNG陷阱

1. 为什么刚写完第一版随机地图就崩溃&#xff1f;——从“能跑”到“能用”的真实断层你兴冲冲地照着教程敲完几十行GDScript&#xff0c;RandomNumberGenerator初始化了&#xff0c;for x in range(width)循环也套好了&#xff0c;甚至还在_draw()里用draw_rect()把每个格子都…...

从API调用成功率看Taotoken服务的稳定性与容灾表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从API调用成功率看Taotoken服务的稳定性与容灾表现 在将大模型能力集成到自动化流程或日常开发工具链时&#xff0c;服务的稳定性和…...

如何快速掌握ncmdumpGUI:Windows平台网易云音乐NCM文件转换完整教程

如何快速掌握ncmdumpGUI&#xff1a;Windows平台网易云音乐NCM文件转换完整教程 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经下载了网易云音乐的…...

3分钟掌握Topit:Mac窗口置顶终极指南,让多任务处理效率翻倍!

3分钟掌握Topit&#xff1a;Mac窗口置顶终极指南&#xff0c;让多任务处理效率翻倍&#xff01; 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 你是否曾经在Ma…...