繁体   English   中英

Qt-使用QEasingCurve的输出而不是动画

[英]Qt - Using QEasingCurve's output for something other than an Animation

我不知道有人能帮上忙。

例如,如果我想将QEasingcurve的输出用于驱动QAnimation以外的其他用途,这可能吗? 例如,如果我想在GUI上读取数值读数,然后将其超调并弹回原位,是否可以将QEasingcurve用于此目的?

我已经使用Qt相当一段时间了,但从未涉足其中的任何部分-我正在尝试解决问题,但未能解决,所以我想在这里提出。

我不确定我是否正确理解了要显示的内容,但是据我了解,使用QPropertyAnimation可能是QPropertyAnimation的方法。

但是,要回答您的问题,您当然可以独立使用QEasingCurve ,您只需要使用valueForProgress(qreal progress)成员函数。

嘿-我只是想更新一下我如何执行此操作,以防将来有人查到。

void RPM::updateGauge(float speed)
{
  easing = new QEasingCurve(QEasingCurve::OutElastic);

  easing->setAmplitude(1.0);

  currentPosition = (float)ui->svgdial_currentSpeed->value();
  newPosition = speed;
  difference = newPosition - currentPosition;

  interval = 0.0;

  timer = new QTimer(this);

  connect(timer, SIGNAL(timeout()), this, SLOT(doGaugeMovement()));

  timer->start(60);

}

void RPM::doGaugeMovement()
{
  interval+=0.01;
  ui->svgdial_currentSpeed->setValue(currentPosition + ( difference * easing-
                                           >valueForProgress( interval ) ) );


 if(interval >= 1.0)
 {
     timer->stop();
 }

}

只需使用计时器即可缓慢地更新量规,每次都会将valueForProgress结果拉到新位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM