在Qt中封装了专门处理动画的框架类QPropertyAnimation,在初始使用QPropertyAnimation时我遇到了一个问题,那就是随着时间的改变我设置控件的"geometry"属性却只是改变了控件的位置,而控件大小却没有改变。
源代码如下:
//新建一个控件
QPushButton *pButton = new QPushButton(this);
pButton->setFixedSize(100, 100);
//建立动画
QPropertyAnimation *anim = new QPropertyAnimation(pButton, "geometry");
anim->setDuration(1000);
anim->setKeyValueAt(0, QRect(0, 0, 100, 100));
anim->setKeyValueAt(1, QRect(0, 0, 10, 10));
anim->setEasingCurve(QEasingCurve::InCubic);
anim->start();
后来我发现因为在动画中需要设置的是"geometry"属性,而我在开始时却以setFixedSize()去设置控件属性所以才导致的是只能改变控件的位置而不能改变控件大小。
修改后如下: