qt 动画




class Widget : public QOpenGLWidget
{
    Q_PROPERTY(QPoint mPoint READ getmPoint WRITE setmPoint)
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();


    QPoint getmPoint() {
        return mPoint;
    }
    void setmPoint( QPoint newPoint ) {
        mPoint = newPoint;
    }


protected:
    //void paintEvent(QPaintEvent *e);

    void paintGL();

private:
    Ui::Widget *ui;

    QPoint mPoint;





void Widget::paintGL()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glDisable(GL_DEPTH_TEST);//关闭更新深度缓冲区,

    QPainter painter;
    painter.begin(this);
    painter.setRenderHints(QPainter::Antialiasing);
    painter.setRenderHint(QPainter::SmoothPixmapTransform);

    QPen pen(Qt::red,2);
    painter.setPen(pen);
    painter.drawLine(300,0,300,360);




    this->resize(960,360);

    Widget *m_widget = new Widget(this);

    QGridLayout *layout = new QGridLayout(this);
    layout->setMargin(0);
    layout->addWidget(m_widget,0,0);
    setLayout(layout);

    QPropertyAnimation *Animation = new QPropertyAnimation(m_widget, "mPoint");
    Animation->setDuration(2000); //持续时间
    Animation->setStartValue(QPoint(340, 0));
    Animation->setEndValue(QPoint(0, 0));
    Animation->setEasingCurve(QEasingCurve::Linear);

    QParallelAnimationGroup *m_group = new QParallelAnimationGroup(this);
    m_group->addAnimation( Animation );
    m_group->setDirection(QAbstractAnimation::Forward); //Backward显示  Forward消失
    m_group->setLoopCount(1);

    m_group->start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值