【发布时间】:2014-02-20 12:31:32
【问题描述】:
当通过 QT 和 Pyside 创建 QGraphicsItem 时,您可以使用 childItem.setParentItem(parentItem) 设置它的父级。如果在父级上设置了ItemIsMoveable 标志,则拖动父级将翻译父级及其所有子级。
在我的用例中,我希望能够在从父级内部的任何位置拖动时拖动父级和子级,但不能在子级内部拖动。单击并拖动子项时,我希望有不同的操作。例如,如果制作节点图编辑器,可以拖动节点及其连接点,但从连接点向外拖动时,会创建图形边缘。
这可以使用内置的 QT 标志来完成,还是需要为父项重载鼠标移动事件?我最初走的是超载路线,但觉得我可能正在与已经内置的东西作斗争。
【问题讨论】:
-
我想我可能搜索得不够好。 This question 几乎相同。我将尝试实施,如果看起来不错,我会回答这个问题,或者根据我的发现将其关闭。我不介意讨论最“QT”的做法,但这可能是重复的。
-
只为孩子提供
mousePressEvent的空实现(可能还有其他鼠标事件)。然后孩子将窃取他范围内的所有鼠标事件。