可移动的QGraphicsItem父级而不是子级QGraphicsItem

超响

在创建QGraphicsItemQT和Pyside时,您可以使用设置它的父对象childItem.setParentItem(parentItem)如果在ItemIsMoveable父级上设置标志,则拖动父级将转换父级及其所有子级。

在我的用例中,我希望能够从父级内部而不是子级内部的任何位置拖动父级和子级。单击并拖动孩子时,我想采取其他操作。例如,如果制作节点图编辑器,则能够拖动节点及其连接点,但是当从连接点向外拖动时,会创建图形边缘。

可以使用内置的QT标志来完成此操作,还是必须使父项的鼠标移动事件超载?我最初是沿着超载路线走的,但是觉得自己可能正在与已经内置的东西抗争。

超响

Marek R的答案是我找到的最干净的答案。只需mousePressEvent在子级中实现in即可防止其导致父级的可移动行为:

class Child(QtGui.QGraphicsItem):
  def __init__(self, name):
    super(Child, self).__init__()

  def mousePressEvent(self, event):
    pass

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章