Форма ввода текста - это простая dll-ка, которая по xml-файлу создает полноценный виджет со всеми нужными полями ввода. У формы до кучи самописных компонентов, которые все так или иначе регулируются своими свойствами.
Итак, рефакторинг я начну с постановки технического задания, раз уж ранее не додумался до этого.
ТЗ
Есть набор компонентов, как родных Qt так и расширенных. Все они так или иначе отображают данные и позволяют их править. Методы установки и получения данных в компоненты различаются названиями. Например setDate, setValue, setText, setData и т.п.
Компоненты должны уметь:
изменять регистр отображаемых данных
взаимодействовать друг с другом, т.е. данные введенные в один компонент могут влиять на данные в других компонентах. Например, выбор пола влияет на список фамилий. Выбор даты влияет на блокировку поля возраст. Выбор из выпадающего списка влияет на видимость других полей, и т.п.
отображать свою обязательность для ввода
принять и отдать данные неким единым методом SetValue/GetValue.
Для каждого компонента есть надпись. Надпись может располагаться с любой из 4-х сторон от компонента и может быть развернута на n градусов.
Совокупность компонента и надписи дает т.н. экранный элемент (ЭЭ).
ЭЭ на форме могут располагаться:
а) ленточно
б) в табличном виде
в) частично в ленточном, частично в табличном виде
По ходу рефакторинга ТЗ планируется уточнять.
Комментариев нет:
Отправить комментарий