在Qt里面,怎么实现把鼠标光标的活动范围锁定到某个矩形区域里面?光标拖动到边界便阻止其越出。Linux

当光标拖动到边界时,再拖动光标就停在那里了,不再继续移动。并不是光标消失了或者形状改变了。类似于用ClipCursor()函数(Windows函数)的效果。... 当光标拖动到边界时,再拖动光标就停在那里了,不再继续移动。并不是光标消失了或者形状改变了。类似于用ClipCursor()函数(Windows函数)的效果。 展开
 我来答
百度网友dccd79ab8
2012-08-16 · TA获得超过739个赞
知道小有建树答主
回答量:292
采纳率:100%
帮助的人:185万
展开全部
你可以在MouseEvent或是HoverEvent中实现
自己设定一个边界矩形,或是区域也行(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中不断的设置光标位置那也晚了。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式