如何设置QGraphicsView的大小?

时间:2013-08-09 18:00:41

标签: qt user-interface graphics

我想要一个固定大小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设置固定大小?

2 个答案:

答案 0 :(得分:1)

我知道这是一个非常老的问题,但是如果其他人偶然发现它:您可以将minimumSizemaximumSize都设置为所需的目标尺寸,并且无论使用哪种布局,它都应该起作用QGraphicsView在里面。

答案 1 :(得分:0)

如果我理解你,你想让QGraphicsView在窗口中居中并且具有固定的大小。你需要VBoxLayout,你应该使用QGridLayout和spacers,所以你的表单应该是这样的:

 <Empty>        <VSpacer>     <Empty>

 <HSpacer>   <GraphicsView>   <HSpacer>

 <Empty>        <VSpacer>     <Empty>