Qt - Использование вывода QEasingCurve для чего-то кроме Animation - PullRequest
1 голос
/ 17 января 2011

Интересно, может кто-нибудь помочь.

Если, например, я хотел использовать выходные данные QEasingcurve для другой цели, отличной от управления QAnimation, возможно ли это? Например, если у меня в графическом интерфейсе есть числовое значение, которое я хочу увеличить, перескочить и отскочить назад, могу ли я использовать QEasingcurve для этой цели?

Я использовал Qt довольно долго, но никогда не баловался ни с одной из этих частей - я пытаюсь разобраться с этим, но не могу, поэтому подумал, что я спрошу здесь.

Ответы [ 2 ]

2 голосов
/ 17 января 2011

Я не уверен, что правильно понимаю, что вы хотите отобразить, но из того, что я понимаю, использование QPropertyAnimation - это, вероятно, путь.

Однако, чтобы ответить на ваш вопрос, вы, конечно, можете использовать QEasingCurve в автономном режиме, вам просто нужно использовать функцию-член valueForProgress(qreal progress).

1 голос
/ 18 января 2011

Эй, я просто хотел обновить информацию о том, как я это сделал, на случай, если кто-нибудь захочет это найти в будущем.

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 для своей новой позиции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...