请大神,关于QGraphicsItem的hoverEnterEvent响应的问题!

phoenix_leaf 2012-11-23 10:45:48
功能描述:子类化QGraphicsItem,重新实现mousePressEvent和hoverEnterEvent,以达到当鼠标移动到item上显示image1在,鼠标按下显示image2,Scene中的其他item设置回默认图片image1.

问题描述:在item类的constructor函数中调用setAcceptsHoverEvents(true),当鼠标进入scene后,hover事件没有响应。但当鼠标在item上点击,程序先进入了mousePressEvent,然后才进入hoverEnterEvent事件。

请问这是什么原因导致的?我的功能需求可以满足吗?
走过路过的,不论如何,先谢过!
...全文
1487 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
乔巴好萌 2012-11-23
  • 打赏
  • 举报
回复
你在VIEW上多移动移动鼠标 看看是否存在一个区域可以触发你的hover事件
乔巴好萌 2012-11-23
  • 打赏
  • 举报
回复
你先看看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是肯定可以触发的
phoenix_leaf 2012-11-23
  • 打赏
  • 举报
回复 1
setAcceptsHoverEvents 不是虚函数哦,该函数调用之后是用作用的,否则根本就不会进hoverEvnet
Jonix 2012-11-23
  • 打赏
  • 举报
回复
要请大神,先要跳大神,你大神跳了吗?没跳大神是不会来的哦~~~ setAcceptsHoverEvents 是不是虚函数? 构造函数调虚函数是不起效果的, 你试试在构造完成后,再用代码调用一次试试看。 或许是这个原因。

16,175

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧