у меня есть класс, реализованный из QGraphicsItem, который называется Node.
у меня есть "узел" в форме прямоугольника, и я могу что-то сделать, когда пользователь нажал на него
я использую события 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 должен работать, когда я щелкнул элемент, а затем вышел из него, я ошибаюсь?
спасибо за идею.