请大神,关于QGraphicsItem的hoverEnterEvent响应的问题!
功能描述:子类化QGraphicsItem,重新实现mousePressEvent和hoverEnterEvent,以达到当鼠标移动到item上显示image1在,鼠标按下显示image2,Scene中的其他item设置回默认图片image1.问题描述:在item类的constructor函数中调用setAcceptsHoverEvents(true),当鼠标进入scene后,hover事件没有响应。但当鼠标在item上点击,程序先进入了mousePressEvent,然后才进入hoverEnterEvent事件。
请问这是什么原因导致的?我的功能需求可以满足吗?
走过路过的,不论如何,先谢过!
--------------------编程问答-------------------- 要请大神,先要跳大神,你大神跳了吗?没跳大神是不会来的哦~~~
setAcceptsHoverEvents 是不是虚函数?
构造函数调虚函数是不起效果的,
你试试在构造完成后,再用代码调用一次试试看。
或许是这个原因。 --------------------编程问答-------------------- setAcceptsHoverEvents 不是虚函数哦,该函数调用之后是用作用的,否则根本就不会进hoverEvnet --------------------编程问答-------------------- 你先看看QGraphicsItem指定的QRect是否已经包括了Item所有的显示区
setAcceptedMouseButtons(Qt::LeftButton);
setAcceptHoverEvents(true);
mPen = QPen(QColor(233, 166, 75));
mPen.setWidth(PENWIDTH);
setFlag(QGraphicsItem::ItemIsMovable, true);
setFlag(QGraphicsItem::ItemIsSelectable, true);
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
我一般设置这些属性
hoverEnterEvent hoverMoveEvent hoverLeaveEvent是肯定可以触发的
--------------------编程问答-------------------- 你在VIEW上多移动移动鼠标 看看是否存在一个区域可以触发你的hover事件
补充:移动开发 , Qt