私はNodeと呼ばれるQGraphicsItemから実装されたクラスを持っています。
私は長方形の「ノード」を持っていて、ユーザーがそれをクリックすると何かをすることができます
mousePressイベントとmouseReleaseイベントを使用します。
しかし、ユーザーが長方形の「外」をクリックしたときに通知を受け取りたいのですが。
私はこれらの関数を実装しようとしました:
Qtコード:
void Node::focusInEvent ( QFocusEvent * event){
cout<<"in"<<endl;
update();
QGraphicsItem::focusInEvent(event);
}
void Node::focusOutEvent ( QFocusEvent * event ){
cout<<"out"<<endl;
update();
QGraphicsItem::focusOutEvent(event);
}
void Node::hoverEnterEvent(QGraphicsSceneHoverEvent *event){
cout<<"out"<<endl;
}
長方形をクリックしたり、長方形の外をクリックしたりしても、これらは反応しません。たとえば、マウスの位置を取得して、長方形から外れている場合は制御するなど、自分でロジックを設定する必要がありますか?または組み込みのメソッドはありますか?
または、「ノード」オブジェクトは、他のノードオブジェクトがクリックされたかどうかをどのように知ることができますか?
また、グーグルで疑問に思いますが、focusineventとfocusouteventがいつトリガーされるのかわかりませんでしたか?アイテムをクリックしてからアイテムから外れたときにfocusOutEventが機能する必要があると思いますが、間違っていますか?
アイデアをありがとう。