crossplatform.ru

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


  Ответ в Динамический UI
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
JohnZ Дата 24.9.2014, 11:46
  После продолжительных экспериментов.
Добавление:
к п.1. QUiLoader к ехе-шнику в добавляет примерно 1 М ( в отладочной версии)
QFormBuilder добавляет 0.2 М, т.е. с размером я ошибся, исправить
месагу не смог.
к п.2 QFormBuilder грузит диалог из файла, а если из буфера, ругается.
Причина ругани определена - ему не хватало buf.open(QIODevice::ReadOnly);
Ту-же форму QUiLoader грузит без вопросов из буфера, как указано в коде п.4.
Все эксперименты в QT 4.5.3 в XP. Позже будет тестироваться в ASP Linux 14

При загрузке формы, как оказалось, у QFormBuilder лежит большая грабля, - он неправильно
именует/создаёт класы виджетов. Т.е. к примеру, если форма в дизайнере "положена" на
QDialog, он создаёт форму почему-то на QStackedWidget :shok: соответственно правильно
её распарсить и затем создать проблематично. За QUiLoader-ом пока такого не замечено,
но у него свои "мухи" ...
JohnZ Дата 1.9.2014, 16:29
  Ок.

1. Работают они почти одинаково, есть небольшая разница во времени появления построенного диалога на
экране, QUiLoader чуть медленнее, но это субъективно, за-то ему нужно меньше памяти, т.к. его модуль меньше.

2. В случае, если пишете свой "Дизайнер", предпочтительнее использовать QFormBuilder, т.к. в "довесок"
к нему в модуле QT-шного Дизайнера идут класы доступа к элементам Дизайнера QT.
С ними я пока не работал, т.к. свою проблему буду решать другим способом, через "фиксированные"
алиасные имена и реализацией класса который об этих именах осведомлён :-)

3. В проектируемом диалоге формы элементы "получают" алиасные имена из конфигурации.
Подробнее о проекте в ветке "Поиск и выбор узла в QTreeView".

4. Вот реально работающий код, для просмотра формы. Загрузка из QString ...
     QString sCode;
     QModelIndex index = selectedIndexes().first();
     DomItem *item = static_cast<DomItem*>(index.internalPointer());
     sCode = item->node().toElement().text();
     QUiLoader fLoader;

     QByteArray ba = sCode.toUtf8();
     QBuffer buf(&ba);
     fpForm *Form = (fpForm *)  fLoader.load(&buf, this);
     buf.close();
     Form->initForm(sCode);

//    Form->exec();       // По вкусу :-)
      Form->show();
      return;
Litkevich Yuriy Дата 1.9.2014, 9:42
  если не затруднит опиши своё резюме по данной теме, вдруг у кого-то возникнут такие же вопросы.
JohnZ Дата 29.8.2014, 23:24
  Вопросы закрыты. Разобрался.
Админ, удали тему, плз ...
JohnZ Дата 25.8.2014, 19:31
  Всем Здавствовать !

Несколько вопросов по динамическому конструированию UI.

1. Подскажите плз, какой класс построителя динамической формы
( QFormBuilder или QUiLoader ) использовать предпочтительнее ?
В первую очередь интересует минимальный р-р потребляемых ресурсов ОЗУ.

2. Как опросить загруженный файл UI на предмет содержащихся в нём виджетов и
их (динамических) атрибутов ?
Интересует поиск специфических, т.е. предопределённых атрибутов и их значений ...

Заранее благодарен за помощь.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 6:32