문제

나는 데 문제가 좌표 매핑도 제대로 작동합니다.어떤 이유로 이 결과는 일반적으로 떨어져하지 않는 한,아주 특정 조건을 만났다.

여기에는 시나리오를 예로 들어:

enter image description here

체는 주문으로 나무에는 각 노드를 100 픽셀 광장입니다.매핑을 수행에서는 각 노드 부모의 첫 번째 노드입니다.항목은 paranted 로 그들은 주문,예를 들어,1 부모의 2 및 4,2 부모의 3 다.

  • Node0 지역 0,0 좌표에 부모로,그래서 논리적으로 매핑하의 위치 노드 0 을 반환 0,0
  • Node1 그러나 반환하지 않 100,100,대신 그것을 반환 200,200
  • Node2 고 3 다르게 동작하는 이 시간에 값이 올바르게 증가는 이전(잘못된)노드의 값 300 300 400,각각 400
  • Node4 반환 300,700 더라도 그것은 100 픽셀은 아래 2 노드
  • Node5-200,1000
  • Node6-300,700-그것은 보다 낮은 노드를 5 지만 낮은 y 값
  • Node7-200,1400-100 픽셀보다 낮은 노드 6 반환 700 추가 픽셀 y 값

는 것 같이 매핑을 하지 않는지 내가 무엇을 가정하지 않는 생산 좌표,절대적인 객체에 매핑되는,예를 들어,왼쪽 상단 모서리의 노 0.해야하는 생산 예상되는 값:

  • Node0 0,0
  • Node1 100,100
  • Node2 200,200
  • 노드 3 300,300
  • Node4 200,400
  • Node5 100,500
  • Node6 200,600
  • Node7 100,700

그것은 보인다 모든 새로운 아이 주어진 수준에서 왜곡하는 결과다.어떤 생각이 여기에 무슨?

도움이 되었습니까?

해결책

후 조사 mapToItem 방법은 내가 결론 그것은 도구에 대한 작업이므로 나는 나 자신입니다.

QPointF absolutePosition() {
        QPointF p(0, 0);
        QQuickItem * item = this;
        while (item != Object::_rootUI) { // absolute position relative to _rootUI
            p += item->position();
            item = item->parentItem();
        }
        return p;
    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top