Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/Alterator/designer ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

Дизайнер форм за 15 минут


Очень часто пользователю удобно набирать в редакторе описание интерфейса и тут же просматривать результат. Сейчас вы увидите, как сделать собственный дизайнер форм за 15 минут.


Прежде всего изучим две новых процедуры alterator.
Первая из них with-atlas – позволяет изменять контекст выполняющихся операций, а именно изменять содержимое atlas. То есть инструкция:

Будет руководствоваться стандартным атласом, заданным при старте, а:

Будет руководствоваться другим, а именно тем который указан вторым аргументом к команде with-atlas.


Вторая инструкция – document:replace-in-widget, расширенная версия уже известного document:replace (подробности cм. в описании структуры документа lookout ). Отличается тем что мы явно задаём виджет внутри которого надо изменить содержимое.


Вот в общем-то и всё. Создадим виджет, разделённый на две части. Слева будет textbox для ввода описания формы. Справа будет groupbox, внутри которого форма будет отображаться.

Ниже сделаем две кнопки, одна из которых по имени “Update form” будет заниматься собственно отображением формы:


Что же тут происходит? Во время нажатия на кнопку мы делаем расширенный атлас, с добавленным узлом /my-form типа memory. После чего с таким расширенным осуществляем замену содержимого документа page.
Блок catch – это специфика guile. Применяется для перехвата ситуаций синтаксических ошибок в набранном документе.


Поскольку здесь происходит в точности такой же процесс, который был бы при загрузке вашего интерфейса, то внутри можете делать всё что угодно без каких либо ограничений:


Благодаря тому что alterator поддерживает разные интерфейсы. Вы сразу получаете в одном флаконе редактор как для Qt интерфейса.

Так и для html интерфейса:


А если редактировать сам код дизайнера? А если ещё раз? ....


Enjoy!


 
Файлы [Скрыть файлы/форму]
Один комментарий. [Показать комментарии/форму]