QGraphicsItemAnimation在每个QTimeLine循环后暂停

时间:2016-11-24 18:55:41

标签: c++ qt qgraphicsitem

QGraphicsBubbleItem::QGraphicsBubbleItem(qreal x, qreal y, qreal width, qreal height, QGraphicsItem *parentItem)
    : QGraphicsEllipseItem(x, y, width, height, parentItem)
{
    timer = new QTimeLine(3000);
    timer->setFrameRange(0, 100);
    //timer->setLoopCount(3);
    connect(timer, &QTimeLine::finished, timer, &QTimeLine::start);

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

    animation->setTranslationAt(0, (width/2)*(-1), (height/2)*(-1));
    animation->setRotationAt(0.5, 180);
    animation->setRotationAt(1, 360);

    timer->start();
}

动画还有更多内容,但我已将代码简化为显示问题的位。项目被绘制并且正在旋转,但它会在每个循环后停止一段可见的时刻。

1 个答案:

答案 0 :(得分:0)

默认情况下,QTimeLine使用设置为的曲线:

oozie job --oozie http://your_host:11000/oozie -config **/job.properties** -run

意味着价值开始缓慢增长,然后稳定运行,然后再次缓慢增长。尝试setting the curve shape到线性:

QTimeLine::EaseInOutCurve