有人可以帮我了解QGraphicsView
在QVBoxlayout
内的工作原理吗?
我从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的阴影框。 我甚至尝试创建一个场景并将其添加到视图中无济于事。 任何想法为什么会这样?
答案 0 :(得分:0)
我需要学习如何更好地阅读(Qt文档)
您必须使用QGraphicsView的viewport()方法来获取与之关联的默认QWidget。
m_mainVBoxLayout-> addWidget(视图 - >视口());
解决了这个问题。