• 大小: 53KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: Qt  动画  

资源简介

适合于做一般的Qt编程练习,同时对于学习Qt也是一个质的飞跃,欢迎共同学习分享,如还需要其他的Qt相关资料可来我的CSDN博客空间留言索取.---在Qt的道路上我们共同学习进步

资源截图

代码片段和文件信息

#include “butterfly.h“
#include 

#include 

static const double PI = 3.14;

Butterfly::Butterfly()

    pix_up.load(“:/images/butterfly1.png“);   //图片的加载
    pix_down.load(“:/images/butterfly2.png“);
    up = true;
    startTimer(100);  //时间间隔100毫秒
    
}

QRectF
Butterfly::boundingRect() const   //加载蝴蝶项目的限定范围,以其自身的坐标系为基础设定的
{
    qreal adjust = 2;
    return QRectF(-pix_up.width()/2-adjust-pix_up.height()/2-adjust
     pix_up.width()+adjust*2pix_up.height()+2*adjust);
}

//一下函数实现蝴蝶的飞舞效果
void
Butterfly::paint(QPainter *painter const QstyleOptionGraphicsItem *option QWidget *widget)
{
    if(up)
    {
        painter->drawPixmap(boundingRect().topLeft()pix_up);//绘图
     up = !up;
    }
    else
    {
     painter->drawPixmap(boundingRect().topLeft()pix_down);
     up = !up;
    }
}

//判断蝴蝶的运动范围,并做相应的处理相信根据函数名大家都知道啥意思
void
Butterfly::timerEvent(QTimerEvent *)
{
    // edge controll
    qreal edgex = scene()->sceneRect().right()+boundingRect().width()/2;
    qreal edgetop = scene()->sceneRect().top()+boundingRect().height()/2;
    qreal edgebottom = scene()->sceneRect().bottom()+boundingRect().height()/2;
    
    if (pos().x() >= edgex)
     setPos(scene()->sceneRect().left()pos().y());
    if (pos().y() <= edgetop)
        setPos(pos().x()scene()->sceneRect().bottom());
    if (pos().y() >= edgebottom)
        setPos(pos().x()scene()->sceneRect().top());
    
    angle += (qrand()%10)/20.0;
    qreal dx = fabs(sin(angle*PI)*10.0);
    qreal dy = (qrand()%20)-10.0;
    //flash = !flash;
    setPos(mapToParent(dxdy));//映射到场景的坐标
    update();
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      34825  2008-05-09 17:39  butterfly\butterfly

     文件       1755  2011-02-27 16:08  butterfly\butterfly.cpp

     文件      37888  2008-05-09 17:49  butterfly\butterfly.exe

     文件        610  2011-02-27 15:57  butterfly\butterfly.h

     文件        359  2008-05-09 17:52  butterfly\butterfly.pro

     文件       7981  2011-02-27 16:01  butterfly\butterfly.pro.user

     文件        148  2008-03-24 16:09  butterfly\butterfly.qrc

     文件       1847  2008-03-24 16:06  butterfly\images\butterfly1.PNG

     文件       2098  2008-03-24 16:03  butterfly\images\butterfly2.PNG

    ..A..H.     11776  2008-03-25 08:36  butterfly\images\Thumbs.db

     文件        757  2011-02-27 16:08  butterfly\main.cpp

     文件       8413  2008-05-09 17:52  butterfly\Makefile

     文件       5720  2008-05-09 17:49  butterfly\Makefile.Release

    ..A..H.      9728  2008-03-25 08:36  butterfly\Thumbs.db

     目录          0  2009-05-04 10:19  butterfly\images

     目录          0  2011-02-26 18:47  butterfly

----------- ---------  ---------- -----  ----

               123905                    16


评论

共有 条评论