我正在尝试在 Qt 桌面应用程序中测试动画。我刚刚从帮助中复制了示例。单击按钮后,新按钮仅出现在左上角,没有动画(甚至结束位置错误)。我错过了什么吗?
Qt 5.0.1,Linux Mint 64 位,GTK
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPropertyAnimation>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QPushButton *button = new QPushButton("Animated Button", this);
button->show();
QPropertyAnimation animation(button, "geometry");
animation.setDuration(10000);
animation.setStartValue(QRect(0, 0, 100, 30));
animation.setEndValue(QRect(250, 250, 100, 30));
animation.start();
}
编辑:已解决。动画对象必须作为全局参考。例如在私有 QPropertyAnimation *animation 部分。然后 QPropertyAnimation = New(....);