PySide节点图连接项

2024-06-24 12:38:33 发布

您现在位置:Python中文网/ 问答频道 /正文

这段代码的目的是节点图类的UI。 双击创建矩形并右键单击将它们与线连接起来。如果在矩形上移动,相应的行尾也会随之移动。问题是这条线只移动前两个矩形。如果你创建另一对矩形并用线连接它们,它就停止移动。我最近开始学习PySide/PyQt,所以可能我不懂所有的代码。在

代码如下: https://github.com/cyberiRex/irex/blob/master/nodeGraph


Tags: 代码https目的githubcomui节点pyqt
1条回答
网友
1楼 · 发布于 2024-06-24 12:38:33

生成此错误的代码如下:

self.selectedItems()[0].linkToItem = item
self.selectedItems()[1].linkToItem = item

假设一个节点已经通过一个链接连接到另一个节点,当添加另一个链接时,前一个链接将被删除,这就是它们断开连接的原因。在

这样的逻辑将继续生成类似的错误,因此我提出的解决方案是一个新的解决方案逻辑,为此,我基于下面的示例Elastic Nodes Example。从您可以作为理解我的解决方案逻辑的基础,很明显,我已经做了一些变体来满足您的需求。在

在第一部分中,我将基类替换为QGraphicsRectItem和QGraphicsLineItem,以减少实现。该逻辑基于给每个边2节点指定它们连接的节点,以便在更新时将其作为节点的参考。此外,每个节点都存储一个边的列表,以便每次移动节点时都执行更新。以下代码实现了上述功能:

^{pr2}$

获取下图所示内容:

enter image description here

完整的例子可以在下面的link

相关问题 更多 >