У меня есть форма в виде отдельного файла .ui, которая загружается в программу по ходу работы. На этой форме имеются созданные мной виджеты. Форма была сгенерирована самой программой, при этом загружается в QtDesigner нормально и нормально в нем отображается. Проблема в том, что форма работает не стабильно, через раз выпадая по ошибке сегментирования.
Вот так я загружаю форму:
QDialog* formWidget;
...
QFile file(fileName + ".ui");
if (file.open(QIODevice::ReadOnly)) {
QUiLoader loader;
loader.addPluginPath("./plugins/");
QWidget* widget = loader.load(&file);
if (QString(widget->metaObject()->className()).compare("QDialog") == 0) {
formWidget = (QDialog*)widget;
...
}
...
}
Сбой обычно происходит во время поиска потомков на форме:
QList<QPushButton*> widgets = formWidget->findChildren<QPushButton*>();
Я покопался отладчиком. Похоже, что у "самодельных" виджетов не хватает какой-то мета-информации. Как это победить?