gpt4 book ai didi

qt - 如何在 Qt 环境中将鼠标光标限制为矩形(在 Ubuntu 12.04 中,而不是 Windows 中)

转载 作者:行者123 更新时间:2023-12-04 18:52:19 25 4
gpt4 key购买 nike

有一个问题让我困惑了几天,那就是如何在 Qt 环境中将鼠标光标限制为矩形?而且我的操作系统是 ubuntu 12.04,所以 Windows API ClipCursor() 不起作用。非常感谢您。

最佳答案

这涉及QGraphicsItem::itemChange() .如果你有一个项目要限制在某个区域,那么重新实现 itemChange()对于那个项目和监视器QGraphicsItem::ItemPositionHasChanged更改以查看项目是否要放置在您感兴趣的区域之外,并通过从该区域内返回位置来防止这种情况。例如:

    QVariant QGraphicsItem::itemChange(GraphicsItemChange change, const QVariant &value)
{
switch (change) {
case ItemPositionHasChanged:
if(x() < -200 || y() < -200 || x() > 200 || y() > 200)
setPos(0, 0);
graph->itemMoved();
break;
default:
break;
};

return QGraphicsItem::itemChange(change, value);
}

如果您没有项目,但想强制用户在该区域内单击然后隐藏鼠标指针(通过将其设置为空白形状),创建一个将用作光标的专用项目,可选择捕获鼠标到那个形状然后使用 itemChange()就像我之前描述的那样。

关于qt - 如何在 Qt 环境中将鼠标光标限制为矩形(在 Ubuntu 12.04 中,而不是 Windows 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27149817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com