如何用QT实现一个极其简单的动画?

我们想做一个电梯门开的动画效果,非常简单的就可以。可否在窗口的一部分进行这个动画,电梯就用一个矩形表示,矩形的上方可以显示楼层的变换,开门的时候就有一个小动作开门。请问用... 我们想做一个电梯门开的动画效果,非常简单的就可以。可否在窗口的一部分进行这个动画,电梯就用一个矩形表示,矩形的上方可以显示楼层的变换,开门的时候就有一个小动作开门。请问用QT实现该用到哪些函数?最好能给我提供一些比较核心的代码或者非常简单的QT动画示例。用QTdesigner怎么做呢?
分不是问题
展开
 我来答
匿名用户
推荐于2018-05-18
展开全部
用Qt中QPropertyAnimation 类实现简单的小动画;
参考代码如下:
.h文件
#ifndef MOVEWIDGET_H
#define MOVEWIDGET_H

#include <QtGui/QWidget>
#include <qpropertyanimation.h>
#include <QLabel>
#include <QApplication>

class MoveWidget : public QWidget
{
Q_OBJECT

public:
MoveWidget(QWidget *parent = 0);
~MoveWidget();

private:
void star();

private:
QPropertyAnimation *animation,
*animation2;
QLabel *myWidget,
*myWidget2;
QString path;
};

#endif // MOVEWIDGET_H

.cpp文件
#include "movewidget.h"
#include "qsequentialanimationgroup.h"
#include "qparallelanimationgroup.h"

MoveWidget::MoveWidget(QWidget *parent)

: QWidget(parent)

{

this->path = QApplication::applicationDirPath();

this->myWidget = new QLabel(this);

this->myWidget2 = new QLabel(this);

this->animation = new QPropertyAnimation(myWidget,"geometry");

this->animation2 = new QPropertyAnimation(myWidget2,"geometry");

//常见QPropertyAnimation对象,关联了myWidget这个窗体的几何属性

this->star();

}

void MoveWidget::star()

{
this->myWidget->setPixmap(QPixmap(this->path + "/hello.png"));
this->myWidget2->setPixmap(QPixmap(this->path + "/hello1.png"));
this->animation->setDuration(2000);//速度,越小越快
this->animation->setStartValue(QRect(0,0,158,168));
this->animation->setEndValue(QRect(250,250,158,168));
// this->animation->setEasingCurve(QEasingCurve::OutBounce);//outbounce有一个缓冲的现象
// this->animation->setEasingCurve(QEasingCurve::OutBack);//outback缓慢降落
// this->animation->setEasingCurve(QEasingCurve::OutCirc);//outcirc和outback差不多
this->animation->setEasingCurve(QEasingCurve::OutInQuart);
this->animation->start();
this->animation2->setDuration(2000);
this->animation2->setStartValue(QRect(0,360,158,168));
this->animation2->setEndValue(QRect(110,180,158,168));
this->animation2->setEasingCurve(QEasingCurve::OutBounce);
this->animation2->start();

}

MoveWidget::~MoveWidget()

{

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者XXGDQ4kMbU
2011-09-12 · TA获得超过1281个赞
知道小有建树答主
回答量:371
采纳率:66%
帮助的人:430万
展开全部
用QGraphicsView ,QGraphicsScene 配合 QAnimation 使用就可以有动画效果,而且很漂亮。在QDemo里面有例子的啊,可以去看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
环榆T2
2011-08-31
知道答主
回答量:32
采纳率:0%
帮助的人:19.2万
展开全部
。。。2.。。
追问
那是我们寝室的!法克 尤尔 马泽
追答
楼主怎么说话呢- -
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漫箫吟pJ
2011-08-31 · TA获得超过5.6万个赞
知道大有可为答主
回答量:3.5万
采纳率:0%
帮助的人:4541万
展开全部
请问你是北邮软院的呗,我也想问这个来着
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wulinwulin76
2011-08-31 · TA获得超过308个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:348万
展开全部
围观
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式