本文共 610 字,大约阅读时间需要 2 分钟。
QPropertyAnimation可以给qt中的属性设置动画
现在自定义一个label,给它设置一个“widgetWidth”属性,其实就是宽度
用QPropertyAnimation给自定义的“widgetWidth”属性设置动画,让label的宽度缓慢变化
QPropertyAnimation * animation = new QPropertyAnimation(ui->w, "widgetWidth"); animation->setDuration(4000); animation->setStartValue(100); animation->setEndValue(600); animation->start(QAbstractAnimation::DeleteWhenStopped);//设置播放完了之后animation清除
在4秒内label的宽度从100变成600
效果:
void setWidgetWidth(int width) { qDebug()<
在setWidgetWidth()中打印width的值,可以发现当动画运行时,setWidgetWidth()不断被调用,从100到600,也就是说动画的原理就是注册属性时注册的WRITE函数不断被调用从而改变属性值。
观察一下QWidget的头文件,有不少属性都是可以设置动画的
转载地址:http://htvx.baihongyu.com/