我有一个从 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;
}
如果我点击进入或离开矩形,这些不会做出反应。我应该自己设置一个逻辑,例如获取鼠标位置并控制它是否超出矩形?还是有内置方法?
或者“节点”对象如何知道是否单击了其他节点对象?
我也想知道,谷歌搜索但找不到焦点事件和焦点事件何时触发?我想当我点击项目时,focusOutEvent 必须工作,然后退出项目,我错了吗?
谢谢你的想法。