所以我正在尝试在已添加到QGraphicsScene的QWidget上使用QPropertyAnimation但它无效。我无法真正复制和粘贴代码,因为它与一个有点复杂的系统交织在一起但总结基本上就是这样:
创建自定义窗口小部件
CustomWidget widget;
将小工具添加到图形场景中
graphicsScene,addWidget(widget);
稍后,其中一个小部件的成员函数尝试创建并启动QPropertyAnimation
QPropertyAnimation *anim = new QPropertyAnimation(this, "_opacity");
anim->setDuration(5000);
anim->setKeyValueAt(0, 0);
anim->setKeyValueAt(1, 1);
anim->start();
而不是平滑动画,属性会更改为第二个值并保持不变。
我已经在线查看了一些相关问题及其解决方案,但似乎没有一个与我的情况相符。有谁知道如何做到这一点?
编辑:我发现我只需要为_opacity调用update()
创建WRITE函数答案 0 :(得分:0)
我猜你是在堆栈而不是堆上分配QPropertyAnimation和朋友。 请注意,QPropertyAnimation对象将在范围的末尾被破坏,因此以后不会更改任何属性。
您很可能想在堆上创建该对象。另请参阅以下示例:http://doc.qt.digia.com/4.7/qpropertyanimation.html