首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

在一个类里面画一个简单动画,但是没出来,不知道为什么

2013-02-25 
求助 在一个类里面画一个简单动画,但是没出来,不知道为什么如题,是在一个类里面添加动画但是不知道为什么

求助 在一个类里面画一个简单动画,但是没出来,不知道为什么
如题,是在一个类里面添加动画但是不知道为什么没有。
代码:

在鼠标响应函数里写的下面两行
QWidget *w=new QWidget();
w = parentWidget();

void ScHomepage::imagemove(QWidget *parent)
{
        parent->resize(300,400);
birdimg=QPixmap("bird.png").scaled(40,40);
QLabel *bird_1=new QLabel(parent);
bird_1->setPixmap(birdimg);
QPropertyAnimation *anim1=new QPropertyAnimation(bird_1, "pos");
anim1->setDuration(2000);
anim1->setStartValue(QPoint(10, 570));
anim1->setEndValue(QPoint(10, 400));
anim1->start();
bird_1->move(-40,-40);
parent->show();
}
[解决办法]
  parent->resize(300,400);
 birdimg=QPixmap("bird.png").scaled(40,40);
 QLabel *bird_1=new QLabel(parent);
 bird_1->setPixmap(birdimg);
 bird_1->show();
 QPropertyAnimation *anim1=new QPropertyAnimation(bird_1, "pos");
 anim1->setDuration(2000);
 anim1->setStartValue(QPoint(10, 570));
 anim1->setEndValue(QPoint(10, 400));
 anim1->start();
 bird_1->move(-40,-40);
 parent->show();
[解决办法]
你最终要达到什么样的效果?
[解决办法]
animation是动画,受时间驱动,跟鼠标点击没什么必然关系。
如果你想做的是 点击一下 鸽子移动一下(平滑的),那你这边比较简单的做法是
做(5-1)个animation。每个animation的位置确保的是到下一个animation之间的平滑移动,
下面是qt助手上的说明
QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry");
 animation->setDuration(10000); //定义动画的持续时间
 animation->setStartValue(QRect(0, 0, 100, 30)); //定义起始位置
 animation->setEndValue(QRect(250, 250, 100, 30)); //结束位置
 animation->start();

你可以定义4个animation,每个animation确保移动到下一个位置即可。在鼠标click时,触发不同的animation start

热点排行