在使用QLayout做窗口布局时,有时候我们需要对其进行遍历得到子项,一般的我们都是通过自带的函数children()得到一个链表,然后再对链表进行遍历,首先我设置布局如下:
//设置布局
QVBoxLayout *pLayout = new QVBoxLayout;
pLayout->addWidget(wiget1);
pLayout->addWidget(wiget2);
pLayout->addWidget(wiget3);
pLayout->addWidget(wiget4);
pLayout->addWidget(wiget5);
pLayout->setSpacing(SPACE); //各个控件的间隔
pLayout->setContentsMargins(0, 0, 0, 0); //设置左、上、右、下的外边距
ui->wgBackGround->setLayout(pLayout);
但是我发现对于QLayout这行不通,后来我才发现children()得到的对象是QLayout,而我设置的布局中只有一个QVBoxLayout(往其中添加wiget) ,所以pLayout->children().count()个数只有1,代码如下:
//找到自身的布局对象和添加到布局里widget的个数
QLayout *pLayout = ui->wgBackGround->layout(