• 8476阅读
  • 11回复

[提问]高手求教:当鼠标进入某个区域后变换鼠标显示方式,可是没有反应 [复制链接]

上一主题 下一主题
离线bigpfx
 
只看楼主 倒序阅读 楼主  发表于: 2011-11-28
在构造函数中:setMouseTracking(true);
void LumiaMainwindow::mouseMoveEvent(QMouseEvent *mouseEvent)
{  

  if((mouseEvent->x()<(center->mask().boundingRect().bottomRight().x()+50))&&

      ((mouseEvent->x())>(center->mask().boundingRect().bottomRight().x())))

{
     mouseEvent->accept();
     setCursor(QCursor(Qt::SizeHorCursor));
}
else
{
  setCursor(QCursor(Qt::ArrowCursor));
}
  
QMainWindow::mouseMoveEvent(mouseEvent);
}
离线roywillow

只看该作者 1楼 发表于: 2011-11-28
记得修改鼠标样式是不用自己处理各种事件的
只要直接修改某个widget的cursor就行了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线bigpfx
只看该作者 2楼 发表于: 2011-11-28
关键是当鼠标进入某个区域内时,我想改变鼠标的显示方式
离线roywillow

只看该作者 3楼 发表于: 2011-11-28
回 2楼(bigpfx) 的帖子
那么有没有确定一下setCursor(QCursor(Qt::SizeHorCursor))这一句有没有执行到?
另外如果那片区域正好有个子widget显示在那的话,这个事件是直接给那个widget处理了应该
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线cthawdf

只看该作者 4楼 发表于: 2011-11-29
楼上的意思是鼠标移动到某个控件上可以通过setCursor()进行设置鼠标显示方式  我觉得楼主的意思是鼠标移动到控件内的某个区域吧  我也只是想到通过坐标判断设置
离线bigpfx
只看该作者 5楼 发表于: 2011-11-29
回 3楼(roywillow) 的帖子
你的意思是鼠标进入某个wighte 此wight会直接处理掉这个信息,也就是说,鼠标进入某个widget,此wight会自动成为焦点么?
离线bigpfx
只看该作者 6楼 发表于: 2011-11-29
回 4楼(cthawdf) 的帖子
  对啊,我就是这个意思,我昨晚用鼠标坐标和widget的边界做了对比,然后setcursor(),效果还可以,呵呵,谢谢啊,对了,楼上知道有什么QT讨论群么?
离线roywillow

只看该作者 7楼 发表于: 2011-11-29
回 5楼(bigpfx) 的帖子
比如窗口中有个label,当鼠标在这个label里的时候,mouseMoveEvent是由这个label处理的,而窗口就不进行处理了。印象中是这么个形式。
不知道enterEvent和leaveEvent对你的需求有帮助吗?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线bigpfx
只看该作者 8楼 发表于: 2011-11-29
应该有帮助,后续的我想在viewport 里面画图,只要进入viewport 我就让鼠标变为画笔或者其他的
离线duduqq

只看该作者 9楼 发表于: 2011-11-29
setMouseTracking(true);
离线孤※少
只看该作者 10楼 发表于: 2012-05-10
可是在enterEvent事件函数中,应该怎样得到鼠标的坐标值呀?
离线XChinux

只看该作者 11楼 发表于: 2012-05-10
QCursor::pos()
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个