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();
}
編集:解決しました。アニメーションオブジェクトはグローバル参照である必要があります。たとえば、セクションprivate QPropertyAnimation*animationにあります。次に、QPropertyAnimation = New(....);