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()を試みましたが、それは私に期待された結果をもたらしませんでした。
ありがとうございます。
こんにちはSteffen。 QGraphicsViewのsetSceneRect()も試しました。しかし、ドキュメンテーションが述べているように:「未設定の場合、またはヌルQRectFが設定されている場合、このプロパティはQGraphicsScene :: sceneRectと同じ値を持ち、QGraphicsScene :: sceneRectで変更されます。 sceneRect()の現在の値をqDebug()<< scene-> sceneRect();で表示すると、QGraphicsViewとQGraphicsSceneの両方に対して同じ正しい値が得られます。 – braggPeaks
うーん、面白いです、私はあなたの例を試してみましたが、私のために働いている唯一の組み合わせは以下の通りです:組み立て後のfitInView()とボタンハンドラの例+ setViewportUpdateMode(QGraphicsView :: FullViewportUpdate)です。 (-10、-10,20,20)にRectangleを追加するFWIWも同様に役立つようです。 – Steffen
申し訳ありませんが、ビューポートの更新モードは関係ありません。 – Steffen