QGraphicsView
ウィンドウの中央に高さと同じ幅を配置しようとしています。
私はQt Designerで普通のものを作成し、最小サイズを設定し、メインウィンドウの中央に配置し、高さと同じ幅を設定するQGraphicsView
いくつかの計算を追加しました。QGraphicsView
のみを使用しsetGeometry
ます。QGraphicsScene
非常に長い長方形を 1 つだけ作成しました。グラフィック シーンを表示に合わせたいので、 を使用しQGraphicsView::fitInView
ました。すべて正常に動作しますが、ウィンドウのサイズ変更に問題がありました。
ウィンドウの高さと幅を大きくすると、すべて正常に動作します。のQGraphicsView
位置とサイズが新しくなりました。ウィンドウのサイズの一部だけを縮小しても、すべて正常に動作します。しかし(最終的に)ウィンドウのサイズを可能な限り小さくすると、すべてが壊れます。ビューの四角形の幅は適切です (サイズ変更なしと同じです。定規で測定しました:))が、新しい余白が作成され、QGraphicsView
配置もサイズも正しくありません(したがって、余白だけでなく、効果がない場合もありsetGeometry
ます)。
QGraphicsView::fitInView
を使用する前に呼び出すと、同じことが起こることに気付きましたsetGeometry
。
それは私を夢中にさせています、助けてください!
ここにいくつかのコードがあります:
void MainWindow::resizeEvent(QResizeEvent *e)
{
int h = e->size().height(),
w = e->size().width(),
s;
if(w > h) s = h-120;
else s = w-120;
ui->board->setGeometry((w-s)/2,(h-s)/2,s,s);
int scaleWidth = ui->board->scene()->width(),
scaleHeight = ui->board->scene()->height();
ui->board->fitInView(QRectF(0, 0, scaleWidth, scaleHeight), Qt::KeepAspectRatio);
}
に何が起こるかのイメージを次にQGraphicsView
示します。四角形は赤、ビューは青です。