在Qt里面,怎么实现把鼠标光标的活动范围锁定到某个矩形区域里面?光标拖动到边界便阻止其越出。Linux
当光标拖动到边界时,再拖动光标就停在那里了,不再继续移动。并不是光标消失了或者形状改变了。类似于用ClipCursor()函数(Windows函数)的效果。...
当光标拖动到边界时,再拖动光标就停在那里了,不再继续移动。并不是光标消失了或者形状改变了。类似于用ClipCursor()函数(Windows函数)的效果。
展开
1个回答
展开全部
你可以在MouseEvent或是HoverEvent中实现
自己设定一个边界矩形,或是区域也行(QRect/QRegion)
判定当前鼠标的位置是否在该矩形内即可,用contains( const QPoint& )
当在边界的时候就设置鼠标cursor的坐标不变即可
自己设定一个边界矩形,或是区域也行(QRect/QRegion)
判定当前鼠标的位置是否在该矩形内即可,用contains( const QPoint& )
当在边界的时候就设置鼠标cursor的坐标不变即可
更多追问追答
追问
谢谢你啊,我也是这样想的,如下
if ( event->globalX()globalY());
setCursor(rectangle_cursor_);
rectangle_cursor_.setPos(correct_pos);
return;
}
else if ...
当光标越过边界,便立刻将光标位置设置回来,可是当鼠标向边界
拖动时光标会频繁地抖动。
追答
我建议你还是用win32的API
因为Qt只是在win32API上wrap了一层
而光标的draw全是由windows自己做的
而Qt只是在回调函数中获得windows的鼠标消息然后构造QMouseEvent的
所以就算你在mouseEvent中不断的设置光标位置那也晚了。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询