我试图从this answer扩展这个伟大的实现,这样用户在图形场景中的点击就可以创建路径,并通过双击关闭路径。在
这很好,但我唯一不能解决的问题是路径中第一个节点的更改。显然,我希望它通过itemChanged
方法更新附加到它的最后一个子路径,但无法实现。在
关于如何处理这个问题有什么建议吗?在
我尝试了以下变体,但它不影响最后一个子路径:
def itemChange(self, change, value):
if change == QGraphicsItem.ItemPositionChange:
self.path.updateElement(self.index, value.toPoint())
if self.index == 0:
last_element_idx = self.path.path.elementCount()
self.path.updateElement(last_element_idx, value.toPoint())
return QGraphicsEllipseItem.itemChange(self, change, value)
我实验的完整代码:
^{pr2}$
您几乎可以做到,但是您的
itemChange
方法有一个off-by-one错误。在我会把你的例子改写成这样:
相关问题 更多 >
编程相关推荐