私は Microsoft Paint に似たプログラムを持っており、キャンバスのサイズ変更の実装に取り組んでいます。マウスカーソルがサイズ変更範囲に移動したかどうか、およびマウスの移動中にマウスの左ボタンが押されたかどうかを検出する必要があります。私はQGraphicsRectItem
自分のキャンバスとして設定しており、マウスの動きとマウスボタンの状態を選択せずに検出したいと考えていますQGraphicsRectItem
。
QGraphicsItem.hoverMoveEvent
カーソルがサイズ変更範囲内にあるかどうかを検出するために使用していましたが、マウスの左ボタンを押したままにすると、hoverMoveEvent
トリガーされなくなりました。
ありますがmouseMoveEvent
、ドキュメントが言うように:
このイベントを受け取った場合、このアイテムもマウス プレス イベントを受け取ったこと、およびこのアイテムが現在のマウス グラバーであることを確認できます。
私のプログラムでは、サイズ変更時にキャンバスが現在のマウス グラバーになることは実際的ではありません。キャンバスのサイズを変更している間、選択状態を保持する必要がある他のオブジェクトがあるかもしれません。
QGraphicsScene
my を含むでこれをQGraphicsRectitem
実行できることはわかっていますが、それらの間の相互依存を避けるために、これをすべて my で実行できるようにしたいと考えていますQGraphicsRectItem
。
だから私の質問は、可能であれば、選択されていない状態でマウスの動きとマウスボタンの状態を検出するにはどうすればよいQGraphicsRectitem
ですか?