Qt实现动画的2种方式

由于我之前是写java的所以在学习Qt的时候感觉会有点熟悉,因为Qt就是 用c++写,而java底层也是c++实现的

先看效果:
在这里插入图片描述

一、使用QMovie

这种方式我目前是用来加载gif图的,很简单噢,只不过我是加载的本地的路径,如果是需要加载资源文件里面的路径我试了一下不知道为啥不成功,路过知道的道友指点一下;

void OnlyTest::slotTestAnim()
{QMovie *movie = new QMovie("C:/Users/qc267/Desktop/pics/girl.gif");bool isResValid = movie->isValid();qDebug()<<" movie.isValid()  = "<<isResValid;if(!isResValid){return;}m_anim_label->setMovie(movie);//用一个Qlable来装就行拉movie->start();//开始动画~
}
二、使用样式表

这种方式就很简单咯,就是循环该背景图片


void OnlyTest::initTimer(){//创建定时器testTimer=new QTimer(this);resize(500,500);eventID=startTimer(500);curIndex=0;InitPixmap();//将定时器超时信号与槽练习起来QObject::connect(testTimer,SIGNAL(timeout()),this,SLOT(slotTestTimer()));
}void OnlyTest::timerEvent()
{curIndex++;//图片标号加curIndex = curIndex%39;repaint();
}QList<QString> imageResList;
void OnlyTest::InitPixmap()
{for (int i = 0; i < 39; ++i) {//获取图片资源路径arg函数将数字插入到字符串中。这个函数接受多个参数来指定插入的格式和值。//i+1: 表示要插入的数字,i是一个变量,它的值加1。//2: 表示插入的数字的宽度为2位。如果插入的数字不足2位,则在前面用0进行填充。//10: 表示插入的数字是十进制的。//QLatin1Char('0'): 表示使用字符'0'作为填充的字符,比如数字为1的时候,填充后就是01。QString str = QString(":/res/C:/Users/qc267/Desktop/pics/allpics/%1").arg(i+1,2,10,QLatin1Char('0'));qDebug()<<"str = "<<str;imageResList.append(str);}
}void OnlyTest::slotTestTimer()
{QPushButton* m_anim_content;m_anim_content  = new QPushButton("",this);m_anim_content->setFixedSize(769,472);m_vboxlayout->addWidget(m_anim_content);//我是用的一个VBoxLayout来装的pushbutton,直接用ui设计器来写的话就不用这步了//开始运行定时器,时间间隔为1000mstestTimer->start(100);QString mUrl = imageResList[curIndex];qDebug()<<"timer running curIndex = "<< curIndex<<",url = "<<mUrl;QString bgUrl =QString("background-image:url(%1)").arg(mUrl);m_anim_content->setStyleSheet(QString(bgUrl));timerEvent();
}

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

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

相关文章

数据安全无阻,轻松远程工作!迅软DSE出差加密指南,让你出差更放心!

文件加密软件是确保内网文件安全使用的重要工具&#xff0c;但在终端脱离内部网络、面对外出或居家办公等情境时&#xff0c;文件加密的挑战也相应增加。为解决这一问题&#xff0c;迅软DSE文件加密软件提供了离线授权功能&#xff0c;确保在终端脱离公司网络后的设定时间内&am…

抖店怎么运营?新手运营方法,这几个流程告诉你!

我是电商珠珠 抖店的热度一直很高&#xff0c;很多新手在入驻抖店的时候&#xff0c;并不知道怎么去运营。 其实&#xff0c;从开店到店铺维护&#xff0c;这几个步骤你们一次就能看懂。 第一步&#xff0c;入驻 入驻的时候需要准备一张个体的营业执照、身份证、银行卡、手…

泽众一站式自动化测试平台TestOne,自动化测试的整体框架和功能介绍

TestOne是泽众软件自主研发的一体化测试系统&#xff0c;基于 B/S 体系的微服务架构&#xff0c;集系统管理、项目管理、测试管理、缺陷管理等功能于一体&#xff0c;覆盖了GUI界面功能自动化测试、接口自动化测试、移动自动化测试类型&#xff0c;完整覆盖自动化测试项目的全过…

LoadRunnder介绍

LoadRunner介绍安装教程LoadRunner三大组件 LoadRunner介绍 性能测试的定义&#xff1a;测试人员借助性能测试工具&#xff0c;模拟系统在不同场景下&#xff0c;对应的性能指标是否达到预期 定义中这个工具是什么呢&#xff1f; 可以使用LoadRunner测试 这个工具相比于其它工…

linux 内核同步互斥技术之每处理器变量

在多处理器系统中&#xff0c;每处理器变量为每个处理器生成一个变量的副本&#xff0c;每个处理器访问自己的副本&#xff0c;从而避免了处理器之间的互斥和处理器缓存之间的同步&#xff0c;提高了程序的执行速度。 每处理器变量分为静态和动态两种。 静态每处理器变量 使…

Flutter开发笔记 —— sqflite插件数据库应用

前言 今天在观阅掘金大佬文章的时候&#xff0c;了解到了该 sqflite 插件&#xff0c;结合官网教程和自己实践&#xff0c;由此总结出该文&#xff0c;希望对大家的学习有帮助&#xff01; 插件详情 Flutter的 SQLite 插件。支持 iOS、Android 和 MacOS。 支持事务和batch模式…

智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.入侵杂草算法4.实验参数设定5.算法结果6.…

【LeetCode刷题笔记(8-3)】【Python】【接雨水】【双指针】【困难】

文章目录 引言接雨水题目描述提示 解决方案3&#xff1a;【双指针】结束语 接雨水 【LeetCode刷题笔记&#xff08;8-1&#xff09;】【Python】【接雨水】【动态规划】【困难】 【LeetCode刷题笔记&#xff08;8-2&#xff09;】【Python】【接雨水】【单调栈】【困难】 引言…

Arcgis新建矢量并手动绘制范围

新建一个shapefile&#xff0c;并选择面 得到了一个新shape 然后右击&#xff0c;开始编辑&#xff0c;打开编辑器

mysql 当前时间加3个工作日

1. 问题描述&#xff1a; 在日常工作中可能会遇到计算工作日的情况 2. 解决过程 (1) 首先制作一个假日表 holiday_config CREATE TABLE holiday_config (id int(10) NOT NULL AUTO_INCREMENT,holiday varchar(8) DEFAULT NULL,PRIMARY KEY (id) USING BTREE ) ENGINEInnoDB…

issue queue的实现方式

主要从一下几个点进行考虑&#xff1a; 集中式&#xff08;Centrallized&#xff09;或者分布式(Distributed)&#xff1b;压缩式&#xff08;Compressing&#xff09;或者非压缩式(Non-compressing)&#xff1b;数据捕捉的方式&#xff08;Data-capture&#xff09;或者非数据…

matlab中Signal Builder模块的用法总结

目录 前言方法一方法二参考文章 前言 今天在用matlab中Signal Builder的模块时&#xff0c;不知道怎么去得到想要的信号源&#xff0c;于是上网查了一下&#xff0c;并记录一下 方法一 如图所示&#xff0c;打开自定义 上面一行是横坐标&#xff0c;下面一行是纵坐标 [0,1…

什么是Symbol?在实际开发中怎么用?

Symbol 是 ECMAScript 6&#xff08;ES6&#xff09;引入的一种新的基本数据类型。Symbol 类型的值是唯一且不可变的。目的是确保对象属性使用唯一标识符&#xff0c;不会发生属性冲突的危险。 1. 使用Symbol() 创建 调用 Symbol()函数时&#xff0c;也可以传入一个字符串参数…

ubuntu docker镜像制作及常用命令

ubuntu docker镜像制作及常用命令 一、安装docker 1、安装 sudo apt install docker.io 2、拉取ubuntu镜像 sudo docker pull ubuntu:18.04 3、从Dockerfile构建镜像 3.1、 Dockerfile示例 FROM ubuntu:18.04MAINTAINER [user] [email]RUN apt-get update \&& …

.NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证

public Task InvokeAsync(HttpContext context){// 获取终点路由特性var endpointFeature context.Features.Get<IEndpointFeature>();// 获取是否定义了特性var attribute endpointFeature?.Endpoint?.Metadata?.GetMetadata<AllowAnonymousAttribute>();if …

CentOS 7部署vsftpd

&#xff08;1&#xff09;概述 vsftpd是Linux上一个非常流行的FTP服务器软件。它使用简单&#xff0c;功能强大&#xff0c;安全性高。本文将介绍如何在CentOS 7上部署vsftpd服务器。 &#xff08;2&#xff09;安装vsftpd 使用yum命令安装vsftpd&#xff1a; yum install…

二叉树题目:二叉树着色游戏

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉树着色游戏 出处&#xff1a;1145. 二叉树着色游戏 难度 6 级 题目描述 要求 两位玩家参与二叉树着色游戏。给定二叉树的根结点 root \textt…

【稳定检索|投稿优惠】2024年公共服务、健康与医药国际会议(ICPSHM 2024)

2024年公共服务、健康与医药国际会议(ICPSHM 2024) 2024 International Conference on Public Services, Health, and Medicine(ICPSHM) 一、【会议简介】 ​2024年公共服务、健康与医药国际会议&#xff08;ICPSHM 2024&#xff09;将于三亚这片美丽的海滨城市盛大召开。我们诚…

送货服务Grupo RÃO将在Moonbeam上通过DUX推出Web3支持的忠诚度计划

波卡上的首选多链开发平台Moonbeam宣布使用由Account Abstraction提供支持的DUX智能钱包为Grupo RO推出Web3忠诚度计划。此次合作为Grupo RO食品配送服务带来了新的奖励计划&#xff0c;其中包括折扣、产品、优惠券、竞赛等福利的订阅 — 所有这些都得益于Moonbeam的区块链技术…

UDP特性之组播(多播)

UDP特性之组播 1. 组播的特点2. 设置主播属性2.1 发送端2.2 接收端 3. 组播通信流程3.1 发送端3.2 接收端 4. 通信代码 原文链接 在公司测试广播和多播有一点问题。。。 1. 组播的特点 组播也可以称之为多播这也是UDP的特性之一。组播是主机间一对多的通讯模式&#xff0c;是…