为什么QGraphicsScene :: advance()不重绘我的项目?

时间:2012-06-20 13:35:19

标签: qt qgraphicsview

我正在尝试在QGraphicsView中移动精灵。我用:

connect(timer, SIGNAL(timeout()), scene, SLOT(advance()));
timer->start(1000/33);

但是我的精灵没有重新粉刷。我要做alt-tab来更新视图。

2 个答案:

答案 0 :(得分:1)

  

在第一阶段,所有项目都会通知场景即将发生变化,在第二阶段,所有项目都会被通知他们可以移动。

文档暗示这是一个场景项目的动画通知工具,它没有说明实际更新视图。您可能需要将QTimer::timeout()信号连接到QGraphicsScene::update()广告位。

答案 1 :(得分:1)

this (QGraphicsScene is missing a particular item update)类似,您只需使场景中的对象无效,并让场景负责更新。