3

我想要一个固定大小QGraphicsView,我想将它与其他一些小部件一起添加到布局中。但是,QGraphicsView简单地忽略resize(),这里是相关代码:

QGraphicsScene* scene = new QGraphicsScene;
QGraphicsView* view = new QGraphicsView(scene);
view->setBackgroundBrush(QBrush(Qt::black, Qt::SolidPattern));
view->resize(1000, 600);

QVBoxLayout* layout = new QVBoxLayout;
layout->setMargin(0);
layout->addWidget(view);
setLayout(layout);

如果我使用setFixedSize()而不是resize(),大小实际上设置正确。但是,似乎窗口大小没有更新,窗口没有正确居中。

我应该如何为 a 设置固定大小QGraphicsView

4

2 回答 2

1

我知道这是一个非常古老的问题,但以防万一其他人偶然发现:您可以将两者都设置minimumSizemaximumSize所需的目标大小,并且无论布局如何,它都应该可以工作QGraphicsView

于 2020-07-14T07:45:04.463 回答
0

如果我理解正确,您希望 QGraphicsView 在窗口内居中并具有固定大小。你需要而不是 VBoxLayout 你应该使用带间隔的 QGridLayout ,所以你的表单应该看起来像:

 <Empty>        <VSpacer>     <Empty>

 <HSpacer>   <GraphicsView>   <HSpacer>

 <Empty>        <VSpacer>     <Empty>
于 2013-08-09T18:30:13.600 回答