按钮没有动画

时间:2013-05-25 15:25:23

标签: qt animation qtgui

我在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();
}

当我点击按钮时,它会消失,并且没有动画。

1 个答案:

答案 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();
}