QGraphicsScene に QGraphicsItem のマトリックスがあり、要素をクリックすると色が変わります。これは で実装されmousePressEvent()
ます。クリックしたままにして、カーソルを他の QGraphicsItem の上に移動し、それらの色も変更できるようにしたいので、mousePressEvent()
.
問題は、マウスが最初の要素をつかむため、クリックするとすべてのイベントが「保持」され、hoverEnterEvent()
トリガーされないことです。に追加しようとしungrabMouse()
ましmousePressEvent()
たが、役に立ちませんでした。
1 つの解決策は、QGraphicsitem をドラッグ可能にし、そのために QT ドラッグ アンド ドロップ機能を使用することだと思います。実際、私はこれを持っています:
void dragEnterEvent(QGraphicsSceneDragDropEvent *event)
{
changeColor();
}
アプリケーションから要素の上にテキストをドラッグすると、希望どおりに機能しますが、QGraphicsItem を「ドラッグ」すると機能しません。
QGraphicsItem をドラッグ可能にして、クリックしたマウス ボタンでホバーしながらイベントをトリガーできるようにする唯一の解決策はありますか?