Basicly, у Вас должно быть ведущее устройство IENumerable, которое является за пределами Вашей рекурсивной функции, затем в Вашей рекурсивной функции (Psuedo-код)
private void flattenList(IEnumerable<T> list)
{
foreach (T item in list)
{
masterList.Add(item);
if (item.Count > 0)
{
this.flattenList(item);
}
}
}
, Хотя я действительно не уверен, что Вы подразумеваете под IEnumerable, вложенным в IEnumerable... точит в этом? Сколько уровней вложения? Каков заключительный тип? очевидно, мой код не корректен, но я надеюсь, что это получает Вас взгляды.
Вместо этого вам нужно вызвать setVisible ()
в соответствующем QAction. Например, addWidget ()
возвращает QAction *:
QAction* widgetAction = toolBar->addWidget(someWidget);
widgetAction->setVisible(false);