QGraphics查看布局

时间:2015-10-08 04:58:06

标签: qt layout qgraphicsview

有人可以帮我了解QGraphicsViewQVBoxlayout内的工作原理吗?

我从QWidget继承了一个类,以下代码在显示时按预期工作:

m_mainVBoxLayout=new QVBoxLayout;
this->setLayout(m_mainVBoxLayout);
QWidget *testWidget=new QWidget();
testWidget->setAutoFillBackground(true);
m_mainVBoxLayout->addWidget(testWidget);
QWidget *testWidget2=new QWidget();
testWidget2->setAutoFillBackground(true);
m_mainVBoxLayout->addWidget(testWidget2);

当我运行它时,屏幕被垂直划分,并且测试窗口小部件有两个阴影框符合预期。

但是,如果我删除testWidget2代码并将其替换为:

QGraphicsView *view=new QGraphicsView();
m_mainVBoxLayout->addWidget(view);

布局搞砸了,因为我没有看到testWidget的阴影框。 我甚至尝试创建一个场景并将其添加到视图中无济于事。 任何想法为什么会这样?

1 个答案:

答案 0 :(得分:0)

我需要学习如何更好地阅读(Qt文档)

您必须使用QGraphicsView的viewport()方法来获取与之关联的默认QWidget。

m_mainVBoxLayout-> addWidget(视图 - >视口());

解决了这个问题。