QGraphicsItem:如何在 QGraphicsScene 调整大小时自动移动它?

Posted

技术标签:

【中文标题】QGraphicsItem:如何在 QGraphicsScene 调整大小时自动移动它?【英文标题】:QGraphicsItem: how to move it automatically with when QGraphicsScene resizes? 【发布时间】:2017-04-03 13:47:02 【问题描述】:

我有一个QGraphicsScene 和一些QGraphicsItem 对象。这是一个数据流图。

我想将一些对象(输入和输出端口)绑定到场景边界,当场景大小发生变化时,它们应该会随着场景边界自动移动

你不能告诉我,怎么做?

【问题讨论】:

您确定要将其绑定到场景“边界”,还是您实际上的意思是将它们绑定到正在可视化场景某些区域的 QGraphicsView 的边缘?如果您支持平移和缩放,则差异很重要,其中视图可能仅显示场景的一个子集。 【参考方案1】:

将 QGraphicsItem 实现中的方法绑定到场景对象的 sceneRectChanged 信号,并让该方法调整对象的位置以考虑新的场景矩形。

根据您要执行的操作,您可能需要保留前一个场景矩形的副本以供参考,以便了解更改的内容。

【讨论】:

以上是关于QGraphicsItem:如何在 QGraphicsScene 调整大小时自动移动它?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QGraphicsItem 上接收手势事件?

Qt:如何调整 QGraphicsItem 以动态改变大小

如何在qml中使用qgraphicsitem

如何防止子 QGraphicsItem 与父级一起移动?

PySide/PyQT5:如何从 QGraphicsItem 发出信号?

如何在 QGraphicsView 中执行 QGraphicsItem(s) 的交换?