2013-05-08 1 views
0

일부 차트를 표시하기 위해 QGraphicsViewQGraphicsScene을 사용 중입니다. 차트의 값 (히스토그램)에 따라 스케일을 변경합니다. 나는이텍스트 위치 조정

enter image description here

처럼 그 값을 표시하기위한 (그들은 QGraphicsItem에서 파생 된) 일부 텍스트를 그릴하지만이 문제에 가져다 그래서 나는, 차트 등의 텍스트 크기를 조절하지 않습니다. 텍스트 크기를 조절하지 않으면 rect의 실제 좌표를 경계하게됩니다. 나는 텍스트를 올바른 위치에 그리기 위해 y 축의 축척을 얻고 싶다.

내 질문에 어떻게 스케일을 얻을 수 있습니다 QGraphicsItem 또는 QGraphicsScene.

미리 감사드립니다.

+0

http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#scale? – Trompa

+0

아니요, 사용해 보았습니다. 그건 작동하지 않습니다. – nabroyan

답변

0

글쎄, 거기에 대한 해결책이 있습니다. QGraphicsScene에서는 실제로 QListQGraphicsView의의를 반환이

QTransform matrix = views().at(0)->transform(); 

views() 같은 변환 행렬을 얻을 수 있습니다. 규모를 얻기 위해 매트릭스를받은 후 (예를 들어 수직을 위해) 당신이 QGrapcsItem의 규모를 점점이

qreal verticalScale = matrix.m22(); 

차이를 할 수는

QTransform matrix = scene()->views().at(0)->transform(); 

입니다 그리고 나머지는 동일합니다.

0

크기 조정을 위해 고유 한 기능을 구현하면 QGraphicsItem에 직접 크기를 조정할 수있는 방법이 없습니다. 스케일을 얻기 위해 QGraphicsView (스케일을 계산하는 곳)에 정적 변수를 만들 수 있으며, 스케일을 얻기위한 정적 함수를 만들 수 있습니다.