• 11328阅读
  • 9回复

QGraphicsItem中怎么加入动画的效果 [复制链接]

上一主题 下一主题
离线longwenbiao
 
只看楼主 倒序阅读 楼主  发表于: 2009-12-02
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
      本来想用定时器来解决的,但是发现QGraphicsItem不是从QObject继承过来的,根本不能用,部长大人说可以用QGraphicsItemAnimation,可是我怎么试都出不来。
离线huha2018
只看该作者 1楼 发表于: 2009-12-02
真能整 还部长大人?  给小日本或者韩国人干活多给两钱也不用这样吧...
离线longwenbiao
只看该作者 2楼 发表于: 2009-12-02
呵呵,小公司,正打算走
离线free510
只看该作者 3楼 发表于: 2009-12-02
     QGraphicsItem *ball = new QGraphicsEllipseItem(0, 0, 20, 20);

     QTimeLine *timer = new QTimeLine(5000);
     timer->setFrameRange(0, 100);

     QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
     animation->setItem(ball);
     animation->setTimeLine(timer);

     for (int i = 0; i < 200; ++i)
         animation->setPosAt(i / 200.0, QPointF(i, i));

     QGraphicsScene *scene = new QGraphicsScene();
     scene->setSceneRect(0, 0, 250, 250);
     scene->addItem(ball);

     QGraphicsView *view = new QGraphicsView(scene);
     view->show();

     timer->start();

跑跑这个例子看看 qt自带的
离线lugaideath

只看该作者 4楼 发表于: 2009-12-02
用时间轴看看,QTimeLine
离线lugaideath

只看该作者 5楼 发表于: 2009-12-02
其实你可以重写QGriphicsItem的时候采用多重继承,把QObject也继承下来
离线benbenmajia

只看该作者 6楼 发表于: 2009-12-02
如果只要动画效果的话可以看看QMovie,只是QMovie只能显示gif和mng格式的视频动画
安然.....
离线babybluema

只看该作者 7楼 发表于: 2010-03-04
如何重写QGriphicsItem的时候采用多重继承,把QObject也继承下来。能否详细说明一下。非常感谢
离线wwy353244835
只看该作者 8楼 发表于: 2011-08-08
像这样:
class dragIcon : public QObject, public QGraphicsItem
{
};
离线shichuan609

只看该作者 9楼 发表于: 2011-08-09
你可以不继承QGraphicsItem,而是继承QGraphicsWidget,这样就可以直接使用动画了。
比如  class  Mypix:public  QGraphicsWidget
{

};
以后创建Mypix的对象后,就可以直接和动画绑定。
8楼的方法也可以,只是比较麻烦,因为QGraphicsWidget就是QGraphicsItem继承QObject,QGraphicsLayouitem后得到的,既然已经实现好了,那就直接用了,这样也许有更多的方法可以直接用。
快速回复
限100 字节
 
上一个 下一个