1

グラフィックシーンとビューがあり、1つの要素を追加しています。ただし、どのx / y座標を指定しても、常にグラフィックビューの中央に表示されます。

なぜこれが発生するのでしょうか。また、たとえば左上隅に表示するにはどうすればよいですか。

これは私のコードです:

scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
QGraphicsEllipseItem *ellipseItem = scene->addEllipse(150, 150, 10, 10);
4

2 に答える 2

2

この理由は、デフォルトでは、すべてのアイテムの長方形を足し合わせてQGraphicsScene計算するためです。sceneRect最初のアイテムを追加すると、自動的にシーンレクとして使用されます。また、デフォルトQGraphicsViewでは、シーンを拡大縮小して中央に配置します。

最終的なシーンまたは目的のシーンがわかっている場合は、アイテムを追加する前に設定してください。

scene->setSceneRect(0, 0, 800, 600);
scene->addEllipse(150, 150, 10, 10);
于 2012-08-06T13:46:46.110 に答える
1

QGraphicsViewによって表示されるシーン長方形を定義することをお勧めします。デフォルトのビューには、現在のシーンの中央に配置された長方形、つまり楕円だけが表示されていると思います。QGraphicsView :: fitInViewを使用して、明示的に表示される領域を定義できます。

于 2012-08-06T09:43:04.900 に答える