Основу интерфейса модуля составляют формы – графическое отображение параметров того или иного объекта системы. При создании интерфейсов следует придерживаться определённых правил, чтобы интерфейс был единообразен и понятен для пользователя.
Форма — это графическое представление интерфейса некоторого объекта системы. При создании дизайна формы следует руководствоваться простым правилом — названия полей не должны быть «оторваны» от самих полей.
Пример правильного описания для qt:
Обратите внимание на “0” для колонки с метками – это необходимо, чтобы колонка заняла в ширину ровно столько сколько необходимо для самой длинной метки.
Пример правильного описания для html:
CSS-класс “form-table” не будет корректно работать для старых браузеров (Internet Explorer 6.0), для них необходимо во всех td, содержащих метки использовать CSS-класс “form-table-label”.
Иногда интерфейс становится столь большим, что приходится группировать отдельные его части.
Группировка при помощи пустых строк
Пример для html:
Пример для qt:
Группировка при помощи горизонтальной черты
Пример для html:
Пример для qt:
В этом способе группировки возможно задание названия группы. Название группы делается полужирным шрифтом и выравнено по левому краю формы.
Пример для html:
Пример для qt:
Форма состоит из различных элементов. При размещении элементов стоит руководствоваться следующими правилами:
Если элемент формы надо скрыть, то в html для этого есть параметры CSS, а в qt — атрибут visibility.
Пример для qt:
Пример для html:
(checkbox text “Label for checkbox”)
<input type="checkbox"/>Label for checkbox
(button text “Button name”)
<input type="submit" class="btn" name="somename" value="Button name"/>
(combobox enumref «/x11/avail_resolution») ;;компактное представление списка
(listbox enumref «/x11/avail_driver») ;; развёрнутое представление списка
<select name="item1" enumref="/x11/avail_resolution"/> <!-- компактное представление списка > развёрнутое представление списка -->
<select name="item1" size="10" enumref="/x11/avail_driver"/> <!
...
...
(checklistbox enumref «/dovecot/avail_mechanisms»)
<table class="alterator-checklistbox" enumref="/dovecot/avail_mechanisms" name="mechanisms" />
(edit)
<input type="text" class="text" name="name1"/>
...
..
%%
Функция write_string_param принимает два атрибута: имя и значение.