crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 29.3.2024, 5:08