воскресенье, 13 сентября 2009 г.

Форма ввода текста

Озадачился полностью отрефакторить форму ввода текста, писанную на Qt.
Форма ввода текста - это простая dll-ка, которая по xml-файлу создает полноценный виджет со всеми нужными полями ввода. У формы до кучи самописных компонентов, которые все так или иначе регулируются своими свойствами.

Итак, рефакторинг я начну с постановки технического задания, раз уж ранее не додумался до этого.

ТЗ

Есть набор компонентов, как родных Qt так и расширенных. Все они так или иначе отображают данные и позволяют их править. Методы установки и получения данных в компоненты различаются названиями. Например setDate, setValue, setText, setData и т.п.

Компоненты должны уметь:

  • изменять регистр отображаемых данных

  • взаимодействовать друг с другом, т.е. данные введенные в один компонент могут влиять на данные в других компонентах. Например, выбор пола влияет на список фамилий. Выбор даты влияет на блокировку поля возраст. Выбор из выпадающего списка влияет на видимость других полей, и т.п.

  • отображать свою обязательность для ввода

  • принять и отдать данные неким единым методом SetValue/GetValue.

Для каждого компонента есть надпись. Надпись может располагаться с любой из 4-х сторон от компонента и может быть развернута на n градусов.

Совокупность компонента и надписи дает т.н. экранный элемент (ЭЭ).

ЭЭ на форме могут располагаться:

а) ленточно

б) в табличном виде

в) частично в ленточном, частично в табличном виде




По ходу рефакторинга ТЗ планируется уточнять.

Комментариев нет:

Отправить комментарий