Qt提供了类QPropertyAnimation来实现图片的一些简单的动画操作效果。

1、新建一个Qt空项目,同时添加资源文件,并在资源文件中添加图片路径。之后在main.cpp函数中添加以下代码

 #include<QApplication>
#include<QLabel>
#include<QPixmap>
#include<QPropertyAnimation> int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *w= new QWidget;//定义窗口部件
w->resize(, ); QPixmap pixmap = QPixmap("linux.png").scaled(, );//定义图片的宽高比例
QLabel *label = new QLabel(w);//将之前设置的窗口定义为标签
label->setPixmap(pixmap);//标签中放置图片 QPropertyAnimation *anim=new QPropertyAnimation(label,"pos");//pos为label的位置属性
anim->setDuration();//移动时间为5000ms
anim->setStartValue(QPoint(, ));//起始坐标,该坐标对应图片左上角
anim->setEndValue(QPoint(, ));//终止坐标,该坐标对应图片左上角
anim->setEasingCurve(QEasingCurve::OutBounce);//setEasingCurve ()函数选择运行轨迹曲线。该行删除后,运动轨迹为直线,无特效
anim->start();//开始移动 w->show();
return app.exec();
}

2、运行程序之后,显示如下

3、扩展:多个动画效果的实现

当涉及到两幅图片甚者多幅图片的动画效果时,需要使用动画组类QSequentialAnimationGroup或QParallelAnimationGroup。前者实现的是串行动画效果,即多个动画一个接一个的发生,后者实现动画并行效果,即多个动画同时发生。

 QSequentialAnimationGroup group;//串行动画
//QParallelAnimationGroup group;//并行动画
group.addAnimation(anim1);//动画1
group.addAnimation(anim2);//动画2
group.start();

文章参考来源:http://www.hnmade.com/bbs/thread-12332-1-1.html,感谢分享!

初识Qt简单动画的更多相关文章

  1. Qt之动画框架

    简述 Qt动画框架旨在为创建动画和平滑的GUI提供了一种简单的方法.通过Qt动画属性,该框架为部件和其它QObject对象的动画操作提供了非常大的自由性,框架也可以被用于图形视图框架中,动画框架中许多 ...

  2. iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

    iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...

  3. 原生JS封装简单动画效果

    原生JS封装简单动画效果 一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码 function animate(obj, target,num){ if(ob ...

  4. qt 窗口动画

    窗口动画 编辑删除转载 2015-10-10 14:50:27 标签:qt渐变动画 一个应用程序通常包含多个动画,例如,你可能希望同时移动许多graphic items或者一个个按照串行的方式的移动他 ...

  5. jquery添加光棒效果的各种方式以及简单动画复杂动画

    过滤器.绑定事件.动画   一.基本过滤器 语法 描述 返回值 :first 选取第一个元素 单个元素 :last 选取最后一个元素 单个元素 :not(selector) 选取去除所有与给定选择器匹 ...

  6. UIView简单动画

    UIView动态实现的效果有以下几种: 1.动态改变frame 2.动态改变color 3.动态改变alpha 4.动态改变bounds 首先,我们先看几种BasicView动画 #pragma ma ...

  7. IOS 简单动画 首尾式动画

    首尾式动画 首尾式动画即通过实现控件由初始状态到结束状态的过程.(主要表现在控件的Frame 透明度 ) // // ViewController.m // CX 简单动画 // // Created ...

  8. jQuery中自定义简单动画的实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  9. canvas制作简单动画

    在画布元素<canvas>中,除了绘制图形.图像.文字外,还可以制作一些简单的动画,制作过程十分简单,主要分为两步操作: 1.自定义一个函数,用于图形的移动或其他动作. 2.使用setIn ...

随机推荐

  1. POJ3279(KB1-D 熄灯问题)

    Fliptile Description Farmer John knows that an intellectually satisfied cow is a happy cow who will ...

  2. sys模块 常用函数

    sys模块是和python解释器打交道的 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) s ...

  3. java-集合小结

    Java集合框架提供了一套性能优良.使用方便的接口和类,包括Collection和Map两大接口,它们都位于   java.util           包中.其中 Collection集合包含两个常 ...

  4. springboot中使用自定义的properties属性

    在application.properties中添加属性ai.name=明ai.age=22ai.sex=男定义配置类如下,前缀(prefix)可自定义修改,本文为 ai.@Configuration ...

  5. <Android 基础(二十五)> Frame Animation

    简介 Frame Animation, 逐帧动画,通过定义一系列的Drawable对象来实现动画效果,可以用来作为视图的背景. Frame Animation在代码中体现为AnimationDrawa ...

  6. 分享一个oracle 完整备份的批处理文件

    该批处理是基本可以无限针对使用window 服务器的oracle 备份,如下: set mydate=%DATE:~0,10% exp e_cards2016/e_cards2016@orcl ful ...

  7. Android Studio 使用Intent实现页面的跳转(带参数)

    不管是在APP,还是在网站中,页面之间的跳转都是很常见的,本文主要讲一下在APP中,如何通过Intent实现页面的跳转. 不带参数: 写在MainActivity页面的代码: Intent inten ...

  8. 从源码上分析ListView的addHeaderView和setAdapter的调用顺序

    ListView想要添加headerview的话,就要通过addHeaderView这个方法,然后想要为ListView设置数据的话,就要调用setAdapter方法了.但是,在调用addHeader ...

  9. oracle profile 概要文件

    Profile文件概述: Profile是Oracle安全策略的一个组成部分,当Oracle建立数据库时,会自动建立名称为Default的Profile文件. 创建用户的时候,如果没有指定profil ...

  10. 为什么不要使用 select * from xxx (oracle 亲测)

    打开已用时间set timing on;create table users(id number(20), name varchar2(20), password varchar2(20));inse ...