QT动画时间轴控制 QTimeLine
QTimeLine类提供用于控制动画的时间轴
比如控制进度条的增长,图片,窗口的旋转,平移等等
QTimeLine有一个frameChanged(int)信号
当调用QTimeLine::start()
frameChanged(int val)里面的val值会从0到50开始递增
(前提是需要设置范围如timeLine->setFrameRange(0, 50); 也需要设置QTimeLine变化的时间timeLine = new QTimeLine(1000, this))
可以在槽函数中接受这个val值
一般使用如:
transform.translate(a, b);
transform.rotate(c);
transform.scale(d, e);
以上(a,b,c,d,e)都可以通过val的值代替或者和val做某种运算后得到
QTransform QTransform类指定坐标系统的2D转换
其中 translate() 和 rotate() 俩函数组合实现图片旋转 , translate()设置旋转中心 , rotate() 实现旋转)
translate(设置坐标中心), scale(设置缩放比例), shear(设置b变形比例), rotate (设置旋转角度)
例子: 当点击按钮时进度条的值会从0到100使用时间是1秒
QProgressBar *progressBar = new QProgressBar (this);
progressBar->setRange(0, 100);
// 指定变化目标是谁以及变化的时间
QTimeLine *timeLine = new QTimeLine(1000, this);//设置变化时间是1秒
//指定在1秒内变化的范围 如果是(0,50)则1秒内进度条从0增加到50
//timeLine->setFrameRange(0, 50);
//设置动画的次数
timeLine->setLoopCount(3);//进度条加载3次
//设置动画的时间快慢,范围以某种速度增长(先快后慢/或者先慢后快)
timeLine->setCurveShape(QTimeLine::EaseInCurve);
//设置动画的方向(如进度条是从0增到100还是100降到0)
timeLine->setDirection(QTimeLine::Backward);
//绑定信号来改变进度条的值
connect(timeLine, SIGNAL(frameChanged(int)), progressBar, SLOT(setValue(int)));
//此按钮用来调用QTimeLine::start()函数
//需要指定开始,一般触发式,或者使用定时器
QPushButton *pushButton = new QPushButton(tr("Start animation"), this);
connect(pushButton, SIGNAL(clicked()), timeLine, SLOT(start()));
//这个可以切换时间轴的方向,也就是动画运动的方向
timeLine-> toggleDirection();
QT动画时间轴控制 QTimeLine的更多相关文章
- Qt动画效果的幕后英雄:QTimeLine
其实动画的本质就是在每一定时间间隔内显示一帧图像,当这个间隔较短的时候人眼就感觉不出来了,觉得看到的是连续的影像.Qt为开发动画效果的人员提供了一个很好的时间控制类QTimeLine. QTimeLi ...
- 时间轴QTimeLine
一个动画由多张静态图片组成,每一张静态图片为一帧.每隔一定时间显示一帧,如果时间间隔非常短的话,那这些静态图片就会构成一个连续影像,动画由此而来.QTimeLine提供了用于控制动画的时间轴,它在实现 ...
- flash时间轴声音大小控制
A2时间轴声音大小控制: var sound:Sound = new Sound(); sound.setVolume(200); 把背景音乐放到一个影片剪辑里,剪辑起名 例如bgm_mc 声音模式为 ...
- 基于jQuery的时间轴鼠标悬停动画插件
之前为大家分享了很多jquery插件,这次我们要来分享一款不太常见的jQuery插件,它是一个时间轴,时间轴上的每一个点在鼠标滑过时都可以显示该点的描述信息,并且鼠标滑过时都可以产生一定的动画特效,比 ...
- Qt编写自定义控件64-垂直时间轴
一.前言 垂直时间轴控件,主要用来描述企业发展历程大事件,或者软件版本迭代历史等,通过时间节点和事件描述来直观的展示发展的过程,一般在web网页或者app中经常看到此类控件,尤其是公司的官网关于公司部 ...
- Laya的动画制作,整图动画,序列图动画,时间轴动画,龙骨动画
参考: Laya动画基础 Egret帧动画工具类 版本:2.1.1.1 序列图动画 白鹭的序列图动画,使用TexureMerger合图,然后使用MovieClip类播放. Laya的话,使用图集打包工 ...
- Qt动画效果的实现,QPropertyAnimation
Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnima ...
- Qt动画与Qt坐标小记
Qt动画 转载自: <http://jingyan.baidu.com/article/154b46315757b628ca8f4116.html> 和 <http://blog. ...
- Qt动画框架The Animation Framework
动画框架是Kinetic(运动)项目的一部分,它的目标是提供一中简单的方法创建动画的和流畅的GUI.借助Qt动画属性,可以提供非常自由的动画窗体组件和其他对象(QObjects).动画框架也能被用于图 ...
随机推荐
- c++字符数组
题目描述 题目描述 输入一个英文句子(长度不会超过100),和他的长度,统计每个字母出现的个数. 输入 第一行包括一个整数,表示句子的长度,长度不会超过100.数字后可能会有多余的无效字符 请gets ...
- Java内存模型与内存结构
Java内存模型 一.简介 Java内存模型(JMM)主要是为了规定线程和内存之间的一些关系:根据JMM的设计,系统存在一个主内存(Main Memory)和工作内存(Work Memory),Jav ...
- 【深入浅出-JVM】(3):浮点数
-5 浮点数推导 二进制转十进制 1 10000001 01000000000000000000000 1 10000001 101000000000000000000000 如果指数位不全为 0 则 ...
- 自定义ApplicationContextInitializer接口实现
简介 ApplicationContextInitializer是Spring框架提供的接口, 该接口的主要功能就是在接口ConfigurableApplicationContext刷新之前,允许用户 ...
- MyBatis从入门到精通:select用法进一步讲解
selectAll:笔记 /* 定义接口方法的返回值的时候,必须注意查询SQL可能返回的结果数量.当 返回值最多只有一个结果的时候,可以将结果返回值定义为SysUser,此时 返回值类型为List&l ...
- 什么是常量?变量? if语句介绍
1.python 的历史 2004 年 Django 的产生 phyton2与 python3 的区别 Python2:源码不统一,有重复的代码功能 Python3:源码统一,没有有重复的代码功能 2 ...
- 获取文件版本(IE)
GetFileInfoCUIAction::GetFileVersion2GetSystemDirectory WCHAR szConfigFile[MAX_PATH + 1]; ::G ...
- java多线程总结-同步容器与并发容器的对比与介绍
1 容器集简单介绍 java.util包下面的容器集主要有两种,一种是Collection接口下面的List和Set,一种是Map, 大致结构如下: Collection List LinkedLis ...
- [小米OJ] 6. 交叉队列
思路: 大概思想如下: 1. 动态规划求解,构造dp[][] 二维数组: 2. 设dp[i][j], i 为 第一个字符串的第i个字母:j 为 第二个字符串的第j个字母 3. dp[i][j] 如果 ...
- .NetCore下ES查询驱动 PlainElastic .Net 升级官方驱动 Elasticsearch .Net
1.背景 由于历史原因,笔者所在的公司原有的ES查询驱动采用的是 PlainElastic.Net, 经过询问原来是之前PlainElastic.Net在园子里文档较多,上手比较容易,所以最初作者选用 ...