我有一个QGraphicsItem的子类。默认情况下,只有当指针在项的boundingRect内且已经发生了鼠标按下事件时,QGraphicsItem才会接收到mouseMoveEvents。 我希望这个子类可以接收QGraphicsScene中发生的所有mouseMoveEvents(最好是以项坐标的形式)。这可能吗?
是的。您可以使用 QGraphicsItem::grabMouse() 来确保获取所有鼠标事件。如果这样做,那么 Qt 承诺以下内容:此项将接收场景中的所有鼠标事件,直到发生以下任何事件: 该项变得不可见 该项从场景中移除 该项被删除 该项调用 ungrabMouse() 另一项调用 grabMouse();当另一项调用 ungrabMouse() 时,该项将重新获得鼠标抓取。
QGraphicsScene:mouseMoveEvent
来按您要求进行分派。 - cgmb