如何枚举布局内的布局?

时间:2015-06-23 10:59:43

标签: c++ qt qtwidgets

我可以枚举布局中的小部件,但我需要枚举布局内布局中的小部件...

我正在尝试:

  while (QHBoxLayout* currentLayout = m_Layout->findChild<QHBoxLayout*>()) {
    while (QCheckBox* currentCheckbox = currentLayout->findChild<QCheckBox*>()) {
      if (currentCheckbox->isChecked()) {

      }
    }
  }

但是这段代码只是卡住了...我想这可能是因为我找不到QHBoxLayout,还有其他可能的方法可以枚举布局内的布局吗?

谢谢

1 个答案:

答案 0 :(得分:1)

for (int i = 0; i < layout->count(); ++i) {
    QLayoutItem *item = layout->itemAt(i);
    if (item->widget()) {
        processWidget(item->widget());
    } else if (item->layout()) {
        processLayout(item->layout());
    }
}