qt动画类学习
Qt动画类 QPropertyAnimation
显示动画
QPropertyAnimation *animation = new QPropertyAnimation(window(), "windowOpacity");
或者
QPropertyAnimation *animation= new QPropertyAnimation();
Animation->setTargetObject(window());
Animation->setPropertyName("windowOpacity");
第一个参数是需要进行动画的窗体,第二个参数是要进行的操作(渐变出现,移动位置,逐渐放大放小等功能)。
windowOpacity:逐渐出现和逐渐消失动画
//界面动画,改变透明度的方式出现0 - 1渐变
QPropertyAnimation *animation = new QPropertyAnimation(window(), "windowOpacity");
animation->setEasingCurve(QEasingCurve::NCurveTypes);//线性
animation->setDuration(1000);//为期1分钟完成
animation->setStartValue(0);//开始是全部隐藏
animation->setEndValue(1);//结束是全部显现
animation->start(QAbstractAnimation::DeleteWhenStopped);//结束时自动释放资源
移动动画
Pos:移动动画
//界面动画效果移动
QPropertyAnimation *animation = new QPropertyAnimation(m_bottomToolbar, "pos");
animation->setDuration(200);//0.2秒完成
animation->setEasingCurve(QEasingCurve::NCurveTypes);//线性
animation->setStartValue(QPoint((width() - m_bottomToolbar->width()) / 2, m_bottomToolbar->y()));//开始位置
animation->setEndValue(QPoint((width() - m_bottomToolbar->width()) / 2, height() - m_bottomToolbar->height() - 10));//结束位置
animation->start(QAbstractAnimation::DeleteWhenStopped);//结束时自动释放资源
放大缩小
size:放大或者缩小
QPropertyAnimation *animation=new QPropertyAnimation(window(), "size");
animation->setDuration(200);//时间0.2秒
QDesktopWidget* desktopWidget = QApplication::desktop();
QRect screenRect = desktopWidget->screenGeometry(); //屏幕区域
int w = screenRect.width();
int h = screenRect.height();
QSize a(window()->size());
animation->setStartValue(QSize(window()->size()*0.9));//初始大小
animation->setEndValue(QSize(w,h));//结束大小
animation->start(QAbstractAnimation::DeleteWhenStopped);//完成时回收资源
大小和位置的改变
geometry:大小和位置的改变
//大小和位置
/* 声明动画类,并将控制对象 this (this一定是继承自QObject的窗口部件) 以及属性名 "geometry" 传入构造函数 */
QPropertyAnimation* animation = nenw QPropertyAnimation(this, "geometry");
/* 设置动画持续时长为 2 秒钟 */
animation->setDuration(2000);
/* 设置动画的起始状态 起始点 (1,2) 起始大小 (3,4) */
animation->setStartValue(QRect(1, 2, 3, 4));
/* 设置动画的结束状态 结束点 (100,200) 结束大小 (300,400) */
animation->setsEndValue(QRect(100, 200, 300, 400));
/* 设置动画效果 */
animation->setEasingCurve(QEasingCurve::OutInExpo);
/* 开始执行动画 QAbstractAnimation::DeleteWhenStopped 动画结束后进行自清理(效果就好像智能指针里的自动delete animation) */
animation->stsart(QAbstractAnimation::DeleteWhenStopped);
qt动画类学习的更多相关文章
- 【Cocos2d-X开发学习笔记】第21期:动画类(CCAnimate)的使用
本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 之前我们已经学习过一些方法让节点“动”起来,Co ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- 第15.10节 PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解
PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计 ...
- Qt学习之路(1)------Qt常用类用法说明
Qt常用类 向控制台输出文本 第一个例子,我们采用STL的方式: console.cpp #include <iostream> int main() { std::cout <&l ...
- 【学习笔记】QT常用类及应用
一.QT基类: QObject 二.QT中常用的库 QT中的类根据功能划分在不同的库中,在用户属性.pro文件中可以看到. 三.Qt基本对话框的使用 常用5类: 通过类名可以直接调用类的静态成员函数. ...
- Qt动画效果的实现,QPropertyAnimation
Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnima ...
- Qt动画与Qt坐标小记
Qt动画 转载自: <http://jingyan.baidu.com/article/154b46315757b628ca8f4116.html> 和 <http://blog. ...
- Qt 智能指针学习(7种指针)
Qt 智能指针学习 转载自:http://blog.csdn.net/dbzhang800/article/details/6403285 从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ ...
- QT动画介绍(有例子可以下载)
所谓动画就是在一个时间段内的不同时间点有不同的状态,只要定义好这样状态,实现动画就是水到渠成的事情.当然做这件事情,最好用的就是状态机,点击这里查看Qt使用状态机实现动画效果实例. 不过,实现动画也有 ...
随机推荐
- Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
一:背景 1. 讲故事 前面跟大家分享过一篇 C# 调用 C代码引发非托管内存泄露 的文章,这是一个故意引发的正向泄露,这一篇我们从逆向的角度去洞察引发泄露的祸根代码,这东西如果在 windows 上 ...
- GitFlow ⼯作流
前言 Git 是一个开源分布式版本控制系统,它可以很方便的帮我们记录文件的改动,就像下面一样: 我们可以很快的跳到文件改动的某一个版本(就像时空穿梭一样). Git 在程序开发中,作为一个源码管理系统 ...
- Golang 入门 : 转换
Go中数学运算和比较运算要求包含的值具有相同的类型.如果不是的话,则在尝试运行代码时会报错. 为变量分配新值也是如此.如果所赋值的类型与变量的声明类型不匹配,也会报错. 解决方法是使用转换,它允许你将 ...
- goland无法识别包
新建 Go 项目时,一定要通过 "File -> New -> Project..." 方式建立,千万不要通过 "File -> Open", ...
- 通用的SpringBoot集成的文件上传与下载
废话不多说--直接看代码 controller package com.webank.wedatasphere.qualitis.controller.thymeleaf; import com.we ...
- Linux netstat 命令查看80端口状态
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Membershi ...
- 小白必看的cmd简单代码!(图片看不到的可复制 粘贴到Typroa进行观看)
打卡cmd的方法 直接window加r 输入cmd 在下方菜单 找到window标志,打开 输入命令提示符 更高级的cmd权限使用:右键命令提示符,点击"以管理员身份运行" 一些简 ...
- tomghost打靶学习笔记(3)
主要内容 信息收集:ajp漏洞 横向提权:在没有办法立刻提升到管理员权限时,可以试试通过横向的权限提升切换到其他用户再做提权尝试 涉及尝试了前两台靶机没有用过的枚举方法,比如SUID 使用john解码 ...
- 使用Python建立双缝干涉模型
引言 双缝干涉实验是物理学中经典的实验之一,它展示了光的波动性以及量子力学的奇异性.实验结果表明,当光或粒子通过两条狭缝时,它们会产生干涉现象,形成明暗相间的条纹图案.这种现象不仅说明了光的波动性,还 ...
- 解决React Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
问题 当我使用如下方式调用组件子组件UploadModal并且绑定Ref时React报错"Warning: Function components cannot be given refs. ...