1

我有一个QGraphicsView渲染我的游戏。此视图始终充满整个屏幕。在右上角,我有另一个QGraphicsView用作小地图;它位于游戏视图上方。我希望这个小地图固定在屏幕的右上角,始终保持其大小。这段代码几乎可以工作,除了小地图的左侧永远不会改变(这是意料之中的)。

void MainWindow::resizeEvent(QResizeEvent *event)
{
    mainWindow->graphicsView->resize(event->size().width(), event->size().height());
    QRect newRect(mainWindow->miniMapGraphicsView->geometry());
    newRect.setRight(event->size().width() - 20);
    mainWindow->miniMapGraphicsView->setGeometry(newRect);
}

我怎样才能做到这一点?

4

1 回答 1

1

当您想以某种方式定位小部件时,布局通常是最好的方法。

添加 a并将其设置QFormLayout为. 然后将您的添加到布局中。编辑迷你地图的属性,将其水平和垂直设置为您想要的尺寸。graphicsViewlayoutDirectionQt::RightToLeftminiMapGraphicsViewsizePolicyFixedminimumSizemaximumSize

另一种方法是使用 aQGridLayout并使用水平和垂直间隔将迷你地图推到视图的任何角落。

注意:布局默认设置了边距,因此如果您希望小部件在边缘紧贴对齐,请将它们归零。

于 2012-11-17T18:50:02.843 回答