2017-10-06 6 views
0

2D QT 애플리케이션을 작성하고 싶습니다. 목표는 사각형을 그려 크기를 조정하고 마우스로 드래그 할 수있게하는 것입니다. QT는 그러한 기능을 제공합니다. QGraphicsXxx 클래스는 기본적으로 픽셀로 작동하지만 클래스의 길이와 차원에서 항목의 크기와 위치를 지정할 수 있어야합니다.QT 좌표 변환 stratetgy

픽셀과 관계없이 미터 단위로 객체 치수를 표현할 수있는 추상화 레이어를 구성하기위한 좋은 전략을 찾고 있습니다. 예를 들어 확대/축소 정보가 포함 된 QRectangle을 확장하는 방법과 실세계와 스크린 (픽셀, 표현) 사이를 변환하는 방법에 대해 생각했습니다.

확실히 가능해야하지만, 좌표 매핑 지옥으로가는 길 같은 냄새가납니다. 그리고 문제에 대한 많은 노력이 마치 이미 세계적으로/우아하게 해결 되었다면 놀라지 않을 것입니다. QT 문서를 찾거나 이해하지 못했습니다.

+0

그것은 당신이 GraphicsView 프레임 워크를 사용하여 작동 했습니까? – Mailerdaimon

답변

2

QGraphicsScene을 사용하여 개체를 배치하면 모든 크기와 위치가 부동 및 단위 독립적입니다. 픽셀은 QGraphicsView를 사용하여 장면을 표시 할 때 작동합니다. 확대/축소는 뷰에서 처리해야하므로 장면에서 좌표 변환을 수행 할 필요가 없습니다. 보기의 변환을 변경하여 원하는 것을 보여줄 수 있습니다.

당신은 GraphicsView 프레임 워크 문서에 대한 자세한 내용을보실 수 있습니다 : http://doc.qt.io/qt-4.8/graphicsview.html