1

QGraphicsViewでスプライトを移動しようとしています。私が使う :

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

しかし、私のスプライトは塗り直されていません。ビューを更新するには、alt-tabを実行する必要があります。

4

2 に答える 2

1

最初のフェーズでは、シーンが変更されようとしていることがすべてのアイテムに通知され、2番目のフェーズでは、すべてのアイテムに移動できることが通知されます。

ドキュメントは、これがシーンアイテムのアニメーション通知ツールであることを示唆しており、実際にビューを更新することについては何も述べていません。おそらくQTimer::timeout()信号をQGraphicsScene::update()スロットに接続する必要があります。

于 2012-06-20T13:44:41.620 に答える
1

これと同様に(QGraphicsSceneには特定のアイテムの更新がありません)、シーン内のオブジェクトのareを無効にして、シーンに更新を任せるだけです。

于 2012-06-21T07:39:22.357 に答える