派生ウィジェットを作成していQGraphicsView
ます。これは、とりわけ、制御フローグラフのように、その中のアイテム間の接続を作成する必要があります。しかし、接続を「描画」するメソッドを実装するのに問題があります
私は2つのアプローチを試しました:
QGraphicsLineItem
ソースオブジェクトが起動されたときに派生オブジェクトを作成し、mouseMoveEvent(..)
その後の移動ごとに更新します。線は正常に描画および更新されますが、マウスを移動するとイベントループが「ロック」されてマウス移動イベントのみが処理されるように見えるため、最終的には機能しません。したがって、他のオブジェクトのhoverEnterEvent(..)/ hoverMoveEvent(..)/等 メソッドは呼び出されません(これらは接続を完了するために必要です)。- mouseMoveEvent(..)でインスタンスを作成
QDrag
して、2つのオブジェクト間の接続を作成すると、2つのオブジェクトがドロップされると接続を形成できますが、このQDrag::exec()
呼び出しでは、マウスの移動を他のオブジェクトに通知する手段がないため、最終的には機能しません。 -そのため、描画された接続は更新できません。
私は本当に2つの組み合わせが必要です。完璧な世界では、QDrag::exec()
呼び出しによって他の種類のマウスの動きの通知が可能になるため、接続を表すオブジェクトを更新できます。誰か提案がありますか?
この質問に似ています。