Qt виджет – расширенный комбобокс

Денис13 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
26.10.2011

Необходим виджет написанный на C++/Qt 4.7 представляющий собой в общем смысле комбобокс:

Поле ввода QLineEdit или его наследник, рядом кнопка принудительного открытия списка

В выпадающем виджете – должна размещаться QTableView

В виджет будет устанавливаться наследник модели QAbstractItemModel – модель будет предоставлять иерархические данные. В выпадающей таблице должно отображаться всё в плоском виде.

В поле ввода должен быть установлен наследник QValidator который должен давать набрать только те данные которые есть в модели в указанной колонке.

при наборе текста – автоматом должен выпадать список с таблицей и там должны быть только отфильтрованные значения в соответствии с текстом введённым в текущий момент в поле ввода. Тоесть исходное состояние поле ввода текста пустое – выпадающий список не отображается, но если нажать на кнопку то он выпадет и будет содержать все элементы которые есть в заданной модели. Если начать набирать текст – выпадающий список отображается и содержит в себе данные которые в текущий момент совпадают с набранным текстом. Набирать чего-то чего нет в заданной колонке модели не давать.

Дополнительные пожелания и комментарии:

Для всех трёх состояний валидатора чтоб цвета фона поля ввода менялись на заданный.

Размер выпадающего списка чтоб конечный пользователь мог менять (QSizeGrip)

Код должен быть в достаточной мере прокомментирован, так как потом может меняться.

Модель потенциально может содержать большое кол-во элементов. По этому по возможности писать всё оптимально.