Я пытаюсь использовать findChildren
вытащить список параметров из моей программы. Код ниже:
QList<QPointer<TParameter> > theFullParameterList;
foreach(TParameter *child, this->findChildren<TParameter* >())
{
theFullParameterList << QPointer<TParameter>(child);
}
Он компилируется нормально, но когда я вхожу в (это) в отладке, есть несколько типов членов QPointer<TParameter>
но мой theFullParameterList
приходит пустой TParameter
это пользовательский класс. Есть ли способ найти детей этого класса, которые находятся в пределах QPointer
?
Пара вопросов:
1) Вы уверены, что такие экземпляры этого класса не уничтожаются при вызове findChildren
?
2) Вы уверены, что установите родителя для экземпляров класса?
Я могу заселить QList
со следующим кодом:
MainWindow::MainWindow()
{
for (int i = 0; i < 10; i++)
new TParameter(this);
}
void MainWindow::on_pushButton_clicked()
{
QList<QPointer<TParameter>> theFullParameterList;
foreach(TParameter *child, findChildren<TParameter*>())
theFullParameterList << QPointer<TParameter>(child);
qDebug() << "Size of list:" << theFullParameterList.size();
}
И вывод: Size of list: 10