gpt4 book ai didi

qt - 防止QGraphicsItem移出QGraphicsScene

转载 作者:行者123 更新时间:2023-12-04 01:44:55 25 4
gpt4 key购买 nike

我的场景具有从(0; 0)到(481; 270)的固定尺寸:

scene->setSceneRect(0, 0, 481, 270);


在它的内部,我有一个自定义的 GraphicsItem,由于有 ItemisMovable标志,我可以移动它,但是我希望它能保留在场景中。我实际上是说我不希望它的坐标既不低于(0; 0),也不高于(481; 270)。

我尝试了几种方法,如覆盖 QGraphicsItem::itemChange()甚至 QGraphicsItem::mouseMoveEvent(),但是我仍然无法达到我想做的事情。

什么是适合我需要的解决方案?我会严重使用 QGraphicsItem::itemChange()吗?

提前致谢。

最佳答案

您可以像这样覆盖QGraphicsItem::mouseMoveEvent()

YourItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
QGraphicsItem::mouseMoveEvent(event); // move the item...

// ...then check the bounds
if (x() < 0)
setPos(0, y());
else if (x() > 481)
setPos(481, y());

if (y() < 0)
setPos(x(), 0);
else if (y() > 270)
setPos(x(), 270);
}

关于qt - 防止QGraphicsItem移出QGraphicsScene,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13102787/

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