2010-06-14 5 views
0

QGraphicsItem을 서브 클래 싱하고 페인트를 다시 구현했습니다. 페인트에서
나는 항목을 라벨이 뭔가를 썼다 :좌표 혼동

painter->drawText("Test",10,40); 

를 내가 뭔가를 별도의 항목으로 표시를 처리하는 것이 유용 할 수 있습니다 생각할 시간 후. 그래서 저는 이렇게 썼습니다.

QGraphicsTextItem *label = new QGraphicsTextItem("TEST",this); 
setPos(10,40); 

그러나 두 개의 "테스트"드로잉이 화면의 같은 위치에 나타나지 않습니다. 차이점은 항목 좌표 (장면 좌표)와 관련이있을 것 같습니다. QGraphicsItem 인터페이스 내부에서 모든 mapFrom ... 및 mapTo ... 조합을 시도했지만 진행이 없습니다. 그림이 화면의 같은 위치에 나타나길 원합니다.
내가 놓친 것은 무엇입니까?

+0

답변이 내 질문에 대한 궁극적 인 해결책이라면 나는 그것을 받아 들일 것입니다. 대답이 유용하지만 궁극적 인 해결책이 아니라면 나는 그것에 투표 할 것입니다. – onurozcelik

답변

1

두 경우 모두 동일한 글꼴 크기와 유형을 사용한다고 가정합니다. 위치의 차이가 매우 작 으면 QGraphicTextItem이 포함 된 텍스트에 대해 약간의 패딩을 사용할 수 있습니다. QGraphicsSimpleTextItem을 사용하려고합니다. QGraphicsSimpleTextItem은 내부적으로 멋진 요소를 추가하지 않고 여전히 동일한 문제가 있는지 확인합니다. 화가 또는 setPost를 사용하면 좌표계가 동일하므로 문제는 아닙니다. 이것이 도움이되지 않으면 Qt가 분리 공백을 추가하는 것을 피하기 위해 두 가지 모두에 대해 동일한 rect를 지정하도록 제안합니다.