1. QWidget和QLayout关系
在使用QWiget和Qlayout时,我们可以按照以下方式嵌套:QWidget<-QLayout<-QWiget<-QLayout<-…;即QWidget中嵌入QLayout,QLayout中嵌入QWidget;
另外补充如下:
QWidget的parent只能是QWidget;
QLayout的parent可以是QWidget或者QLayout;
当需要一个QWidget 插入到QLayout中,可以在实例化QWidget时省略parent,在QLayout->addWidget()动作时,QLayout讲调用QWidget的setParent(QWidegt),并将自己的parent(QWidget)作为参数输入,即将Qlayout的parent传递给待插入的QWidget,官网文档如下:
Tips for Using Layouts When you use a layout, you do not need to pass a parent when constructing the child widgets. The layout will automatically reparent the widgets (using QWidget::setParent()) so that they are children of the widget on which the layout is installed.
Note: Widgets in a layout are children of the widget on which the layout is installed, not of the layout itself. Widgets can only have other widgets as parent, not layouts.
You can nest layouts using addLayout() on a layout; the inner layout then becomes a child of the layout it is inserted into.