2012-03-12 3 views
0

이것은 사소한 것처럼 보이지만 해결책을 찾지 못했습니다. 좌표계를 QGraphicsScene [-10, -10]에서 [10, 10] (setSceneRect (-10, -10, 20, 20)을 사용하여)으로 설정하고 QRect를 장면의 좌표계를 사용하여QRraphicsScene의 QRect

scene = new QGraphicsScene(-10.0, -10.0, 20.0, 20.0, ui->graphicsView); 
// scene is already a QGraphicsScene pointer defined in the .h 
ui->graphicsView->setScene(scene); 
scene->addRect(-8, -8, 4, 4); 

예에서 예상하는 것은 왼쪽 아래 경계에서 경계를 이루는 사각형입니다. 나는 또한 mapToScene() 및 fitInView()를 시도했지만 예상 결과를 가져 오지 못했습니다.

도와 주셔서 감사합니다.

답변

2

나는 당신이 장면의 어떤 부분을 표시 할 것인지 알려주는 QGraphicsView::setSceneRect()을 찾고 있다고 생각합니다.

+0

Hello Steffen. 나는 또한 QGraphicsView의 setSceneRect()를 시도했다. 그러나 설명서에 "설정되지 않았거나 null QRectF가 설정된 경우이 속성의 값은 QGraphicsScene :: sceneRect와 같으며 QGraphicsScene :: sceneRect로 변경됩니다." qDebug() << scene-> sceneRect();를 사용하여 sceneRect()에 대한 현재 값을 표시하면 QGraphicsView 및 QGraphicsScene에 대해 동일하고 올바른 값을 얻습니다. – braggPeaks

+0

흠, 흥미 롭습니다. 예제를 시도해 보았습니다. 지금까지는 저에게 맞는 유일한 조합은 건설 후 (예 : 버튼 처리기) fitInView() + setViewportUpdateMode (QGraphicsView :: FullViewportUpdate)입니다. FWIW (-10, -10,20,20)에 Rectangle을 추가하면 도움이되는 것 같습니다. – Steffen

+0

죄송합니다, 뷰포트 업데이트 모드는 중요하지 않습니다. – Steffen

관련 문제