2012-03-12 3 views
0

これは簡単なことですが、解決策が見つかりませんでした。私がしたいのは、QGraphicsScene [-10、-10]〜[10、10](setSceneRect(-10、-10、20、20)を使って座標系を設定し、シーンの座標系を使用して、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

こんにちはSteffen。 QGraphicsViewのsetSceneRect()も試しました。しかし、ドキュメンテーションが述べているように:「未設定の場合、またはヌルQRectFが設定されている場合、このプロパティはQGraphicsScene :: sceneRectと同じ値を持ち、QGraphicsScene :: sceneRectで変更されます。 sceneRect()の現在の値をqDebug()<< scene-> sceneRect();で表示すると、QGraphicsViewとQGraphicsSceneの両方に対して同じ正しい値が得られます。 – braggPeaks

+0

うーん、面白いです、私はあなたの例を試してみましたが、私のために働いている唯一の組み合わせは以下の通りです:組み立て後のfitInView()とボタンハンドラの例+ setViewportUpdateMode(QGraphicsView :: FullViewportUpdate)です。 (-10、-10,20,20)にRectangleを追加するFWIWも同様に役立つようです。 – Steffen

+0

申し訳ありませんが、ビューポートの更新モードは関係ありません。 – Steffen

関連する問題