0

这是我的代码:

void Widget::update()
{
    if (a==1)
    {
        QPushButton button("Animated Button");
        button.show();

        QPropertyAnimation *animation =
                    new QPropertyAnimation(&button, "geometry");
        animation->setDuration(10000);
        animation->setStartValue(QRect(0, 0, 100, 30));
        animation->setEndValue(QRect(250, 250, 100, 30));

        animation->start();
        a++;
    }
}

void Widget::on_pushButton_clicked()
{
    a=1;
}

我是 C++ 的新手,我怎样才能使它工作?

4

1 回答 1

1

我建议您阅读一本好的 C++ 书籍,或者至少阅读http://www.cplusplus.com/doc/tutorial/

对于初学者,您可能打算在 on_pushButton_clicked() 中的 a==1 之后调用 update()?还有一个问题是你的按钮在函数结束时超出范围,所以你需要做

QPushButton *button = new QPushButton("Animated Button", this); 

最后,update() 是 QWidget 中的一个虚函数(我假设它是 Widget 派生的?)。你为什么要覆盖它?您可能想将其命名为 startAnimatinon() 之类的名称。

于 2012-05-25T20:04:16.443 回答