QT显示加载动画
文章目录
- 一、前言
- 二、使用
- 1.FormLoading.h
- 2.FormLoading.cpp
一、前言
项目中在下发指令时,结果异步返回,可能需要一段时间,因此需要用到加载动画。
用的比较简单,就是新建Widget子窗口,放一个Label,使用QMovie在Label中播放GIF。
当下发指令时,就打开子窗口显示加载过程,同时开启一个定时器,如果在定时器触发超时信号或超时之前收到结果,则隐藏加载过程子窗口,并关闭定时器。
二、使用
1.FormLoading.h
#ifndef FORMLOADING_H
#define FORMLOADING_H#include <QWidget>
#include <QMovie>
#include <QLabel>namespace Ui {
class FormLoading;
}class FormLoading : public QWidget
{Q_OBJECTpublic:explicit FormLoading(QWidget *parent = 0);~FormLoading();void startAnimation();void stopAnimation();protected:void paintEvent(QPaintEvent *p1);private:Ui::FormLoading *ui;QMovie *m_pMovie;QLabel *m_pLabel;
};#endif // FORMLOADING_H
2.FormLoading.cpp
#include "formloading.h"
#include "ui_formloading.h"
#include <QVBoxLayout>
#include <QPainter>
#include <QBitmap>
FormLoading::FormLoading(QWidget *parent) :QWidget(parent),ui(new Ui::FormLoading)
{ui->setupUi(this);// 设置窗口置顶和无边框this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);// 设置窗口透明用来支持圆角样式属性this->setAttribute(Qt::WA_TranslucentBackground);// 设置模态对话框this->setWindowModality(Qt::ApplicationModal);setFixedSize(350, 280);m_pMovie = new QMovie(":/images/loading.gif");m_pLabel = new QLabel(this);m_pLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);// 设置背景透明m_pLabel->setAutoFillBackground(true);//m_pLabel->setStyleSheet("width:150px;border-radius:10px; background-color: rgb(255, 255, 255);");m_pLabel->setStyleSheet("background-color: rgba(255, 255, 255, 0);");m_pLabel->setMovie(m_pMovie);QVBoxLayout *pLayout = new QVBoxLayout(this);pLayout->addWidget(m_pLabel);setLayout(pLayout);
}FormLoading::~FormLoading()
{delete ui;if(m_pMovie != nullptr){delete m_pMovie;}if(m_pLabel != nullptr){delete m_pLabel;}
}// 绘图事件
void FormLoading::paintEvent(QPaintEvent *p1)
{//绘制样式QStyleOption opt;opt.init(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);//绘制样式QBitmap bmp(this->size());bmp.fill();QPainter painter(&bmp);painter.setPen(Qt::NoPen);painter.setBrush(Qt::black);painter.setRenderHint(QPainter::Antialiasing);painter.drawRoundedRect(bmp.rect(), 15, 15);setMask(bmp);
}void FormLoading::startAnimation()
{m_pMovie->start();
}void FormLoading::stopAnimation()
{m_pMovie->stop();
}
相关文章:
QT显示加载动画
文章目录 一、前言二、使用1.FormLoading.h2.FormLoading.cpp 一、前言 项目中在下发指令时,结果异步返回,可能需要一段时间,因此需要用到加载动画。 用的比较简单,就是新建Widget子窗口,放一个Label,使用…...
原型模式(C++)
定义 使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 应用场景 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的…...
web浏览器打开本地exe应用
一、如何使web浏览器打开本地exe应用? 浏览器打开本地exe程序我们可以使用ActiveXObject方法,但是只支持IE,谷歌、火狐等浏览器并不支持此操作。 那问题来了,我们又该如何操作? 经过本博主的不断学习探索终于找到了一…...
微信小程序如何配置并使用less?
1,检查微信开发者工具(工具版本1.03)————这步很重要不然后面按步骤实行后会发现急死你也还是不管用,我之前死在过这一步,所以大家不要再次踩坑了 ~ ~ 。。。 2,在VScode中下载Less插件 3,…...
【Spring】反射动态修改Bean实例的私有属性值
Cannot cast org.springframework.http.client.InterceptingClientHttpRequestFactory to org.springframework.http.client.OkHttp3ClientHttpRequestFactory 由于RestTemplate在自定义初始化时顺序比较早,想在启动后跟进yum或者注解配置修改初始化的值时ÿ…...
MySQL DDL 数据定义
文章目录 1.创建数据库2.删除数据库3.查看所有数据库4.查看当前数据库5.选择数据库6.创建数据表7.查看 MySQL 支持的存储引擎和默认的存储引擎8.删除数据表9.查看数据库的数据表10.查看表结构11.查看建表语句12.重命名数据表13.增加、删除和修改字段自增长14.增加、删除和修改数…...
Ventoy 设置VTOY_MAX_SEARCH_LEVEL = 0只扫描U盘根目录 不扫码子目录
在镜像分区/media/yeqiang/Ventoy创建目录ventory,目录内创建文件ventoy.json,内容如下 {"control":[{ "VTOY_MAX_SEARCH_LEVEL": "0" }] }采用系统默认的utf-8编码。 参考: search path . Ventoy Plugin.e…...
vue3父子同信的双向数据实现
前言: 我们知道的是,父传子的通信,和子传父的通信,那如何实现父子相互通信的呢? (vue3中)v-model 和modelValue结合使用,在vue2中使用的是.sync 在父组件的写法 <template> <Son v-model"num" /&…...
Shiro是什么?为什么要用Shiro?
前言 本文小新为大家带来 Shiro入门概述 相关知识,具体内容包括Shiro是什么,为什么要用 Shiro,Shiro与Spring Security 的对比,Shiro的基本功能(包括:基本功能框架,功能简介)&#x…...
Vue3+Vite+Pinia+Naive后台管理系统搭建之九:layout 动态路由布局
前言 如果对 vue3 的语法不熟悉的,可以移步Vue3.0 基础入门,快速入门。 1. 系统页面结构 由 menu,面包屑,用户信息,页面标签,页面内容构建 2. 创建页面 创建 src/pages/layout.vue 布局页 创建 sr…...
从零开始学Python(Ⅰ)基本变量与数据类型
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Python的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.关于Python的基本知识(变量…...
SQL ASNI where from group order 顺序 where和having,SQL底层执行原理
SQL语句执行顺序: from–>where–>group by -->having — >select --> order 第一步:from语句,选择要操作的表。 第二步:where语句,在from后的表中设置筛选条件,筛选出符合条件的记录。 …...
Mac M2 Ventura(13.3) 新机 安装Cocoapods
1.执行命令: sudo gem install cocoapods 因为是新机,内置的ruby版本是(2.6.0)太低,会报错 所以需要安装新的ruby版本 2.如果已经安装了低版本的homebrew,可以先卸载: 卸载: /b…...
Unity 引擎做残影效果——2、屏幕后处理方式
Unity实现残影效果 大家好,我是阿赵。 这里继续介绍Unity里面做残影的方法。之前介绍了BakeMesh的方法做残影,这一期介绍的是用屏幕后处理的方法做残影。 一、原理 之前的BakeMesh方法,是真的生成了很多个网格模型在场景里面。如果用后处理做…...
考研算法38天:反序输出 【字符串的翻转】
题目 题目收获 很简单的一道题,但是还是有收获的,我发现我连scanf的字符串输入都忘记咋用了。。。。。我一开始写的 #include <iostream> #include <cstring> using namespace std;void deserve(string &str){int n str.size();int…...
“深入解析JVM:探秘Java虚拟机的工作原理“
标题:深入解析JVM:探秘Java虚拟机的工作原理 摘要:本文将深入探讨Java虚拟机(JVM)的工作原理,包括类加载、内存管理、垃圾回收、即时编译等关键概念。通过详细解析JVM的各个组成部分,读者将能够…...
[Flask]SSTI1
根据题目提示,这关应该是基于Python flask的模版注入,进入靶场环境后就是一段字符串,而且没有任何提示,有点难受,主要是没有提示注入点 随机尝试一下咯,首先尝试一下guest,GET传参 但是没有反应…...
Object Map 的相互转换
学生业务对象定义:Student Student student new Student(); student.setId(1L); student.setName("令狐冲") student.setAge(10) 第一种:通过Alibaba Fastjson实现 pom.xml 文件依赖 <dependency><groupId>com.alibaba</g…...
VS+Qt环境下解决中文乱码问题
目录 原因解决方案总结 原因 使用VSQt出现中文乱码的情况一般都是给控件添加中文文本时出现,而控件需要的字符串类型是QString,默认是utf-8。在 Visual Studio 中,源代码文件的默认执行字符集可能是 Windows 默认的 ANSI 字符集,…...
互联网摸鱼日报(2023-08-08)
互联网摸鱼日报(2023-08-08) 36氪新闻 宝洁、欧莱雅、联合利华加大广告预算投入:越萧条,要越营销? 把智能手机的“高端货”装进汽车,厂商的脑洞越来越大了 王一博《热烈》票房破7亿,街舞是一门怎样的生意࿱…...
Cesium动态泛光效果实战:手把手教你用d3kit插件打造炫酷城市光效(附完整代码)
Cesium动态泛光效果实战:手把手教你用d3kit插件打造炫酷城市光效(附完整代码) 当夜幕降临,城市天际线被霓虹灯勾勒出流动的轮廓,这种视觉冲击力正是现代三维可视化项目的灵魂所在。本文将带你用d3kit这个轻量级插件&am…...
基于Trinket M0与伺服电机的宠物激光护目镜DIY全攻略
1. 项目概述与核心思路给自家毛孩子做个赛博朋克风的万圣节装备,这个想法在我脑子里盘桓很久了。市面上那些宠物装饰要么千篇一律,要么就是简单的布料缝制,总感觉少了点“硬核”的趣味。直到我看到伺服电机和激光二极管这两个小玩意儿&#x…...
AI对话记忆管理实战:memory-organizer库解决长上下文难题
1. 项目概述:一个为AI记忆体“瘦身”与“归档”的利器最近在折腾一些本地大语言模型(LLM)的应用,比如搭建个人知识库助手或者长期对话机器人,一个绕不开的痛点就是“记忆”的管理。模型本身没有持久记忆,每…...
(最新版)GitGitHub实操图文详解教程(01)—Git的起源
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 在现代软件开发过程中,版本控制工具已经成为代码管理与团队协作的重要基础设施。随着软件项目规模不断扩大以及多人协作需求日益复杂,开发团队不仅需…...
555定时器深度解析:从RC电路到三种工作模式的原理与应用
1. 项目概述在电子设计的工具箱里,有那么几颗芯片,你几乎可以在任何时代的电路板上找到它们的身影。它们可能不是性能最强的,但一定是应用最广、最经久不衰的。今天要聊的555定时器,就是这样一个“活化石”级别的存在。自上世纪70…...
【独家首发】Midjourney针孔相机风格参数白皮书:基于1,842张生成图像的光学畸变量化分析(含f/1.4–f/16等效光圈映射表)
更多请点击: https://intelliparadigm.com 第一章:Midjourney针孔相机风格的光学本质与范式演进 光学原理的数字复现 针孔成像(Pinhole Camera)的本质在于无透镜、小孔衍射与直线传播的几何约束。Midjourney 通过扩散模型隐式建…...
2026年十大最佳地区搜索排名优化工具:权威榜单赋能企业高效增长
本文全面梳理了2026年十大主流地区搜索排名优化工具的核心功能与应用价值,旨在为本地企业提供客观、实用的选型参考。通过对各工具地域关键词布局、多平台同步能力及实时数据监控等关键模块的解析,结合具体参数指标与套餐定价,系统呈现不同场…...
Ubuntu中ping命令安装与网络诊断全攻略
1. 项目概述:一个看似简单却暗藏玄机的问题“如何在Ubuntu中安装ping”,这个标题乍一看,可能会让很多老手会心一笑,甚至觉得有些“小白”。但恰恰是这个看似基础到不能再基础的问题,却是我在多年运维和开发工作中&…...
SuperMap Objects开发避坑指南:从COM引用到内存释放的实战经验总结
SuperMap Objects开发避坑指南:从COM引用到内存释放的实战经验总结 在GIS二次开发领域,SuperMap Objects以其强大的空间数据处理能力备受开发者青睐。然而,当我们将这个COM组件集成到C# WinForms项目中时,往往会遇到一些官方文档…...
【职场】职场中你可以坚强,但不必逞强
职场中你可以坚强,但不必逞强 ——写给那些咬牙撑着、却不知道为什么要撑的人我见过太多这样的人。 凌晨两点还在改PPT,眼睛里布满血丝,手边的咖啡已经凉了。有人问他"还好吗",他抬起头,挤出一个笑ÿ…...
