我在Qt Designer中创建了一个带有单个按钮的新QWidget,我将其添加到源代码中:
void MainWindow::startAnimation()
{
QPropertyAnimation animation(ui->pushButton, "geometry");
animation.setDuration(3000);
animation.setStartValue(QRect(this->x(),this->y(),this->width(),this->height()));
animation.setEndValue(QRect(this->x(),this->y(), 10,10));
animation.setEasingCurve(QEasingCurve::OutBounce);
animation.start();
}
void MainWindow::on_pushButton_clicked()
{
startAnimation();
}
当我点击按钮时,它会消失,并且没有动画。
答案 0 :(得分:2)
您的animation
超出范围,并在startAnimation()
功能结束时自动删除。这就是为什么没有发生的原因。使用QPropertyAnimation
创建new
实例,稍后使用finished
信号和deleteLater
广告位将其删除,如下所示:
void MainWindow::startAnimation()
{
QPropertyAnimation* animation = new QPropertyAnimation(ui->pushButton, "geometry");
...
connect(animation, SIGNAL(finished()), animation, SLOT(deleteLater()));
animation->start();
}