2012-09-18 2 views
1

좌표축을 구현하고 싶습니다. 내가하고 싶은 일은 :Qt를 사용하여 축을 디자인하는 방법 QGraphicsitem

  • 이 축의 가장 헤드 점을 드래그하면 축의 길이 만 마우스 이동으로 변경됩니다.
  • 이 축의 본문을 끌면 축 방향 만 변경됩니다.

어떻게 수행하나요? 두 축 (머리, 몸체)을 사용하여 축을 표현할 수 있습니다. 헤드이 드래그 할 때 크기 조정을 수행하십시오. 본문이 끌면 회전합니다.

더 좋은 해결책이 있습니까?

답변

1

클릭 한 위치에 따라 드래그 동작이 달라 지지만 하나의 그래픽 항목으로 사용할 수 있지만 제안 사항은 합리적입니다.

화살표 머리는 화살 몸체의 하위 항목이어야합니다. 따라서 몸체를 회전 시키면 적절히 움직이며 마우스 클릭/마우스 이동 이벤트에 맞춤형 해킹이 필요합니다. 몸을 적절하게 조절하려면 화살표 머리.

+0

하나의 그래픽 항목으로 사용하는 경우 이 그래픽 항목은 내가 클릭하는 위치를 어떻게 알 수 있습니까? – xiaoke

+0

@xiaoke 이벤트 객체'e'에서'e-> pos()'또는'e-> scenePos()'를 사용하여 그래픽 장면 마우스 이벤트 (클릭/끌기 포함)의 위치를 ​​얻을 수 있습니다. docs here : http://doc.qt.digia.com/4.7-snapshot/qgraphicsscenemouseevent.html#pos를 참조하십시오. – James

관련 문제