QGridLayout中的setEnabled()不能改变LayOut中的控件的状态,因此当我们需要遍历Layout中所有的子控件,并且做一些属性的更改时,可以使用如下方法:
auto f = [](QGridLayout* layout) {
int num = layout->count();
for (int i = 0; i < num; ++i)
{
auto item = layout->itemAt(i);
if (item && item->widget())
{
item->widget()->setEnabled(true);
}
}
f(gridLayout);