Трудно сказать, принадлежит ли ваш код пользовательской реализации QPushButton (поэтому this
относится к объекту QPushButton) или код взят из какого-то другого QWidget
.
Вы можете посмотреть здесь:
QGraphicsOpacityEffect *effect = new QGraphicsOpacityEffect(ui->pushButton);
ui->pushButton->setGraphicsEffect(effect);
QPropertyAnimation *animation = new QPropertyAnimation(effect, "opacity");
animation->setDuration(3000);
animation->setStartValue(0.0);
animation->setEndValue(1.0);
animation->setEasingCurve(QEasingCurve::Linear);
// To track opacity value
QTimer *timer = new QTimer();
timer->setInterval(250);
connect(timer, &QTimer::timeout,
this, [animation]
{
qDebug() << "Opacity: " << animation->currentValue().toDouble();
});
timer->start();
animation->start();
Этот фрагмент кода делает следующее:
введите описание изображения здесь
И выводит это:
Opacity: 0.0693333
Opacity: 0.149
Opacity: 0.234333
Opacity: 0.319667
Opacity: 0.399667
Opacity: 0.485
Opacity: 0.565
Opacity: 0.650333
Opacity: 0.735667
Opacity: 0.815667
Opacity: 0.901
Opacity: 0.981
Opacity: 1
Вместо того, чтобы брать это значение из Button
, возьмите его из QPropertyAnimation
объекта.