简单使用QEasingCurve来实现运动动作

通过QEasingCurve来方便实现物理相似动作。

代码如下:

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    if(event->key() == Qt::Key_M)
    {
        QPropertyAnimation *animation = new QPropertyAnimation(ui->lineEdit, "geometry");
        animation->setDuration(10000); //动作时间
        animation->setStartValue(ui->lineEdit->geometry()); //开始动作值
        animation->setEndValue(QRect(200, 200, 100, 50)); //结束动作值

        QEasingCurve curve; //动作曲线
        curve.setType(QEasingCurve::OutBounce); //动作曲线方式
        curve.setAmplitude(3.00); //回弹Bounce振幅
        curve.setOvershoot(2.70); //超调量,就是稳定量
        curve.setPeriod(4.90); //频率当量
        animation->setEasingCurve(curve);

        animation->setLoopCount(2); //动作次数,如果为-1表示一直循环
        animation->start(); //开始动作
        //this->close();
    }

    qDebug() << event->text() << "has been pressed";
}

其中

Amplitude: The higher the amplitude, the higher the bounce or elastic spring effect that will be applied to the animation.

Overshoot: Some curve functions will produce an overshoot (exceeding its final value) curve due to a damping effect.

                   By adjusting the overshoot value, we are able to increase or decrease this effect.

Period: Setting a small period value will give a high frequency to the curve. A large period will give it a small frequency.

运行代码,效果如下:

多谢,亲爱的美美。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值