Russian Qt Forum
Ноябрь 24, 2024, 01:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Динамическое формирование формы в Qt. Есть вопрос...  (Прочитано 7815 раз)
aspirant
Гость
« : Февраль 15, 2010, 14:38 »

Здравствуйте. Я новичок в Qt, мне поставлена задача динамического формирования формы ПО по сценарию.
Сценарий подразумевает под собой перечень компонент TextLabel, LineEdit и Button, их размеров, текста для TextLabel,...
Количество разных компонент и их параметров может меняться в зависимости от сценария.

Сам сценарий хранится в БД. В момент запуска моя программа должна обращаться к БД, считывать сколько каких компонент нужно создать на форме, и затем динамически создавать форму с компонентами.

Подскажите, пожалуйста, как в таком случае формировать динамически форму ПО? Может есть у когото похожие примеры?

ЗЫ: Я смотрел примеры для QtUiTools, но он мне не походит, поскольку, как я понял, там в примерах с динамическим созданием форм уже есть файл *.ui c перечнем компонент на форме, а в моей задаче перечень может меняться и не известен до момента старта программы...


Записан
Amigo_sa
Гость
« Ответ #1 : Февраль 15, 2010, 15:06 »

добрый день. Я бы посоветовал посмотреть автогенеренный код форм qt-шных. Метод setupUi(). То есть, вам придется распарсить текстовое описание файликов форм и генерировать похожий код "на лету".
Записан
zoro86
Гость
« Ответ #2 : Февраль 15, 2010, 15:50 »

Можешь использовать Web интерфейс, на основе QWebView или QWebPage так легче...

пример посмотри в ...examples/webkit/formextractor
Записан
MoPDoBoPoT
Гость
« Ответ #3 : Февраль 15, 2010, 16:11 »

Я смотрел примеры для QtUiTools, но он мне не походит, поскольку, как я понял, там в примерах с динамическим созданием форм уже есть файл *.ui c перечнем компонент на форме, а в моей задаче перечень может меняться и не известен до момента старта программы...
ui-файл по сути является обычной xml-кой, который можно подгрузить и динамически с помощью QUiLoader. Также в Qt есть такая штука: QtScript.
А вообще, поищи по форуму, подобная тема, по-моему, поднималась.
Записан
MoPDoBoPoT
Гость
« Ответ #4 : Февраль 15, 2010, 16:16 »

Кстати, не так давно появился QML
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #5 : Февраль 15, 2010, 19:16 »

Цитировать
Сценарий подразумевает под собой перечень компонент TextLabel, LineEdit и Button, их размеров, текста для TextLabel,...
Не пойму в чем проблема-то - простейшие примеры из книг по Qt подойдут для освоения.

Единственно отн6осительно-сложной задачей будет сделать чтобы эти созданные на основе "сценария" формы выглядели приелимо красиво/в одном стиле/ не рахъезжались и т.д. А так проблем нет:

Код
C++ (Qt)
QWidget * pWidget = new QWidget();
 
QPushButton * pBtn = new QButton( pWidget );
pBtn->setGeometry();
pBtn->setText();
 
и т.д.
 
Записан
aspirant
Гость
« Ответ #6 : Февраль 16, 2010, 12:44 »

break, MoPDoBoPoT, zoro86, Amigo_sa - спасибо за ответ!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.091 секунд. Запросов: 23.