質問

非常に簡単なQt GUIアプリケーション:

  • のシーンって複数の円として実施されQGraphicsItem
  • boundingRectを返しますスクエア周辺 こ円です。
  • 法"形状"ではありませんオーバーライドになります。

の問題が表示され塗装()メソッドで私は追加:

if (isSelected()) {
    painter->drawRect(re);
}

選択が描かれたもunselectionな原因と再描画.でレベルのログを見ると、その項目も失われた選考フラグ。呼び出しupdate()からitemChangeは役に立ちます。よろしくお願いしず。

役に立ちましたか?

解決

は10日後、私は戻って、この問題に戻って、私のQGraphicsItemを用いて構築することを発見します setCacheMode(DeviceCoordinateCache);  ああ、神様!選択(デフォルトQGraphicsItem :: NoCache命令を使用することによって)この行が削除された愚かな間違いは、再描画もあります。

他のヒント

また、デフォルトsetViewportUpdateModeとFullViewportUpdateにQGraphicsView :: MinimalViewportUpdateを(QGraphicsView :: FullViewportUpdate)に変更しようとすることができます。

それとも、()シーンを呼び出すことができます - >更新();アイテムから再描画をスケジュールします。

私は項目にQGraphicsItem :: ItemHasNoContentsフラグを変更保管時に

そのうちの一つは、少なくとも必要とした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top