Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: aspirant от Февраль 15, 2010, 14:38



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

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

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

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




Название: Re: Динамическое формирование формы в Qt. Есть вопрос...
Отправлено: Amigo_sa от Февраль 15, 2010, 15:06
добрый день. Я бы посоветовал посмотреть автогенеренный код форм qt-шных. Метод setupUi(). То есть, вам придется распарсить текстовое описание файликов форм и генерировать похожий код "на лету".


Название: Re: Динамическое формирование формы в Qt. Есть вопрос...
Отправлено: zoro86 от Февраль 15, 2010, 15:50
Можешь использовать Web интерфейс, на основе QWebView или QWebPage так легче...

пример посмотри в ...examples/webkit/formextractor


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


Название: Re: Динамическое формирование формы в Qt. Есть вопрос...
Отправлено: MoPDoBoPoT от Февраль 15, 2010, 16:16
Кстати, не так давно появился QML (http://qt.nokia.com/doc/qml-snapshot/declarativeui.html)


Название: Re: Динамическое формирование формы в Qt. Есть вопрос...
Отправлено: break от Февраль 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();
 
и т.д.
 


Название: Re: Динамическое формирование формы в Qt. Есть вопрос...
Отправлено: aspirant от Февраль 16, 2010, 12:44
break, MoPDoBoPoT, zoro86, Amigo_sa - спасибо за ответ!