0

解決しました。C++とQtを使用してフルスクリーンアプリを作成しています。画面には、画面の一部を取り出すgraphicsScene(およびそのためのビュー)があります。座標を正しく取得する方法がわかりません。

ビューのサイズをコンテナのサイズと一致させたい。lは、コンテナよりも大きいビューを作成してスクロールバーを表示する(最初は不要)が、ポイント(0,0)は左上隅にある(lはこれが必要)か、小さいがビューを作成することができます。ポイント(0,0)は左上隅になくなり、「マージン」があります。プログラムでグリッドを描画できるように、(0,0)ポイントを左上にします。

scene = new NoteMatrix(LayoutB2);
view = new QGraphicsView(scene);
scene->setSceneRect(0,0,view->frameSize().width(), view->frameSize().height());
view->fitInView(view->sceneRect());
view->setAlignment(Qt::AlignLeft);
scene->addRect(0, 0, scene->width(), scene->height()); //visualize boundaries
QWidget *widget = new QWidget(parent);
widget->setLayout(LayoutB2);
mainLayout->setStretchFactor(widget, 1);
setCentralWidget(widget);

最初の問題を解決しました。座標に問題はありませんでした。このシナリオでは、左のどちら側にでも配置を設定する必要があります。

4

1 に答える 1

0

QGraphicsviewのシーンに合わせたい場合

view->setScene(YourScene);
view->setSceneRect(0,0,view->frameSize().width(),view->frameSize().height());

これを使用して、シーンの四角形を設定します。幅と高さをビューの幅と高さよりも小さく設定した場合、またはビューのオーラルに設定した場合は、スクロールバーは表示されません。それ以外の場合は表示されます。

QGraphicsView :: fitInView()も試してください。

于 2012-06-05T11:57:17.057 に答える