我有QGraphicsView
渲染我的游戏。此视图始终填满整个屏幕。在右上角,我有另一个QGraphicsView
,我正在使用它作为迷你地图;它坐在游戏视图上。我希望这个迷你地图能够固定在屏幕的右上角,始终保持其大小。这段代码几乎可以工作,只是迷你地图的左侧永远不会改变(to be expected)。
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);
}
我该怎么做?
答案 0 :(得分:1)
当你想以某种方式定位小部件时,布局通常是最好的方法。
向QFormLayout
添加graphicsView
并将其layoutDirection
设置为Qt::RightToLeft
。然后将miniMapGraphicsView
添加到布局中。编辑迷你地图的属性,将其水平和垂直sizePolicy
设置为Fixed
,并将其minimumSize
和maximumSize
设置为您希望的尺寸。
另一种方法是使用QGridLayout
并使用水平和垂直间隔符将迷你地图推送到视图的任何角落。
注意:布局默认设置了边距,因此如果您希望小部件在边缘处紧密对齐,请将它们归零。