2012-07-16 2 views
2

QGraphicsItem의 하위 클래스가 있습니다. 기본적으로 QGraphicsItem은 포인터가 항목의 boundingRect 내에 있고 mousePressEvent도 발생한 경우 mouseMoveEvents 만받습니다.QGraphicsItem에서 모든 마우스 동작을 수신합니까?

이 하위 클래스는 그것이 구성원 인 QGraphicsScene 내에서 발생하는 모든 mouseMoveEvents를 받기를 원합니다 (가능하면 항목 좌표에서). 이것이 가능한가?

답변

3

예. QGraphicsItem::grabMouse()을 사용하여 모든 마우스 이벤트를 가져올 수 있습니다. 이렇게되면, Qt promises the following :

다음 이벤트의 때까지 장면에 대한 모든 마우스 이벤트를받을이 항목은 발생

  • 항목은 항목이 제거
  • 보이지된다 현장에서
  • 항목이 삭제됩니다
  • 항목은
  • 또 다른를 ungrabMouse()를 호출 항목 호출 grabMouse(); 다른 항목이 ungrabMouse()를 호출하면 해당 항목은 마우스를 다시 가져옵니다.
+0

둘 이상의 QGraphicsItem이 동시에 mousemove 이벤트를 수신 할 수있는 방법이 있습니까? – dmd

+0

자세한 내용이 없으면 최선의 방법이 무엇인지 말할 수 없습니다. 당신이 시도하는 것은 점점 더 해커 들리는 것입니다. 아마도 당신은 한 걸음 뒤로 물러나서 당신이 궁극적으로 성취하려고 시도하는 것이 무엇이든간에 새로운 질문을해야합니다. – cgmb

+0

기본적으로 나는 마우스 포인터의 위치에 반응하는 자율적 인 에이전트 유형의 것들을 갖고 싶다. – dmd

관련 문제