[英]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.