我想要一个固定大小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()
,则实际上正确设置了大小。但是,似乎窗口大小未更新,窗口未正确居中。
我应该如何为QGraphicsView
设置固定大小?
答案 0 :(得分:1)
我知道这是一个非常老的问题,但是如果其他人偶然发现它:您可以将minimumSize
和maximumSize
都设置为所需的目标尺寸,并且无论使用哪种布局,它都应该起作用QGraphicsView
在里面。
答案 1 :(得分:0)
如果我理解你,你想让QGraphicsView在窗口中居中并且具有固定的大小。你需要VBoxLayout,你应该使用QGridLayout和spacers,所以你的表单应该是这样的:
<Empty> <VSpacer> <Empty>
<HSpacer> <GraphicsView> <HSpacer>
<Empty> <VSpacer> <Empty>