我正在尝试使用PySide在python中创建类似于terragens节点网络视图的东西 我使用此代码将QGraphicsRectItem子类化。
class Node(QGraphicsRectItem):
def __init__(self,pos):
QGraphicsRectItem.__init__(self,pos.x()-100,pos.y()-30,200,60)
self.setFlag(QGraphicsItem.ItemIsMovable,True)
(...)
这给了这个(有一些奇特的画作):
我想通过将鼠标从一个小矩形拖到另一个小矩形来实现连接节点,但这会导致移动整个节点。
因此,当鼠标在一个小矩形内按下时,我不希望QGraphicsRectItem被移动。我怎么能这样做。
(如果需要,我可以定义类似isInDraggingArea(x,y)
)
提前致谢。
答案 0 :(得分:2)
我找到了解决方案,抱歉浪费你的时间。
在场景中添加以下代码:
def mousePressEvent(self, event):
item = self.itemAt(event.scenePos())
if item and item.inDraggingArea(event.scenePos()):
QGraphicsScene.mousePressEvent(self,event)