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