私は、単一のQGraphicsView
がそれを見て、QTimer
でGraphicsScene:public QGraphicsScene
継承したクラスを持って、ポインタ上でdeleteLaterを呼び出した後でsegfaultを回避する方法はありますか?
void GraphicsScene::adv()
{
if (actor)
views().at(0)->ensureVisible(actor,200,100);
advance();
}
advance()
機能を呼び出すためにカチカチと、シーン上のすべてのQGraphicsItem
のオブジェクトに送信されオーバーライドされたメソッドです。この機能のポイント - 私はactor
が常に見えるようにしたいと思います。 actor
はunit:public QGraphicsPixmapItem
のオブジェクトはGraphicsScene
です。
actor
の方法では、私はdeleteLater()
と呼んでいます。
次のタイマティック私はdeleteLater()
後true
として、なぜif (actor)
パス、不思議と私は何が正しい状態であるを使用する必要がありますviews().at(0)->ensureVisible(actor,200,100);
ライン
でSEGFAULT
を受けますか?
オブジェクトを削除すると、ポインタもポイントしますが、ポインタ値は自動的にnullになりません。したがって、オブジェクト 'actor'が削除されても、' if(actor) 'は引き続き通過します。 – vahancho