• 5469阅读
  • 0回复

Qt视图体系的问题(缩放和鼠标感应) [复制链接]

上一主题 下一主题
离线vboylin
 
只看楼主 正序阅读 楼主  发表于: 2010-12-04
我从QGraphiscItem子类化了一个类CImageInfo, 做如下配置:
1 设置ItemIgnoreTransfertion为TRUE;
2 在boundingRect()中返回的是一个(0,0)开始的矩形。
3 重新实现了hoverMoveEvent,用于获取鼠标坐标,如下:
void CImageInfo::hoverMoveEvent( QGraphicsSceneHoverEvent * event)
{
        ptMouse = event->pos();
}

现在在GraphiscView的wheelEvent()中使用scale(factor, factor)进行放大500倍,结果鼠标还没有到达CImageInfo的区域就触发了CImageInfo::hoverMoveEvent(), ptMouse的值为(-135, 50), 并且CImageInfo::paint()中option->state & QStyle::State_MouseOver也为true。我试了一下, 鼠标滑到在CImageInfo中心开始的的左上角一个较大的矩形区域内都能触发CImageInfo::hoverMoveEvent(),点击能选择并且可以拖动,在其他区域不能,这是什么原因呢?(现象见下图)
[ 此帖被vboylin在2010-12-06 13:00重新编辑 ]
快速回复
限100 字节
 
上一个 下一个