【发布时间】:2016-03-26 16:41:56
【问题描述】:
假设我有五个对象,左上角的红色方块和较大的黑色方块都在 0,0 处插入场景。
稍后,假设我想将黑色方块的右下角移动到右下角方块的右下角。最明显的做法是:
bS.setRect(bS.rect().setBottomRight(redBR.rect().bottomRight));
这不是完全正确的代码,但想法很简单。我会将黑色方块右下角的坐标设置为红色方块右下角的坐标。 因为那是我想要的。但在 Qt 中,这似乎是不可能的。
因为对 redBR 的调用认为它在原点。 每个项目都认为它在原点。这意味着我永远无法知道任何项目的坐标,任何地方,永远。
有没有办法强制 QGraphicsScene 告诉我实际坐标? 或者,是否有其他一些使用真实坐标的图形框架?如果没有办法让它工作,我不会坚持使用 Qt。
欢迎任何帮助。请记住我的目标不是:“通过机械手拖动盒子的角落”。我的目标是能够在我希望某个项目位于特定坐标时将项目放置在坐标上。
编辑:
这是我的意思的一个例子。大盒子还没有连接上,不用担心它的坐标。问题是,如果我 不 重新映射从小盒子出来的点,每个盒子都会认为它位于原点。但是如果我这样做,那么 y 值会在 0、1 和 -1 之间摇摆不定。
【问题讨论】:
-
您能否再提供一张代表您想要的结果的图片?之前和之后的某个时间。
-
我用一张新图片编辑了我的帖子,它显示了原始 pos 值以及在其上调用 mapFromScene 或 mapFromParent 后的值。
标签: qt qgraphicsitem qgraphicsscene