当前位置:编程学习 > wap >>

请大神,关于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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,