crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как правильно загрузить .ui форму с собственными виджетами?
mva
  опции профиля:
сообщение 6.4.2011, 23:16
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 104
Регистрация: 15.3.2009
Из: Киров
Пользователь №: 615

Спасибо сказали: 3 раз(а)




Репутация:   0  


Добрый день всем!

У меня есть форма в виде отдельного файла .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*>();


Я покопался отладчиком. Похоже, что у "самодельных" виджетов не хватает какой-то мета-информации. Как это победить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 8:31