Qt виджет – расширенный комбобокс
Необходим виджет написанный на C++/Qt 4.7 представляющий собой в общем смысле комбобокс:
Поле ввода QLineEdit или его наследник, рядом кнопка принудительного открытия списка
В выпадающем виджете – должна размещаться QTableView
В виджет будет устанавливаться наследник модели QAbstractItemModel – модель будет предоставлять иерархические данные. В выпадающей таблице должно отображаться всё в плоском виде.
В поле ввода должен быть установлен наследник QValidator который должен давать набрать только те данные которые есть в модели в указанной колонке.
при наборе текста – автоматом должен выпадать список с таблицей и там должны быть только отфильтрованные значения в соответствии с текстом введённым в текущий момент в поле ввода. Тоесть исходное состояние поле ввода текста пустое – выпадающий список не отображается, но если нажать на кнопку то он выпадет и будет содержать все элементы которые есть в заданной модели. Если начать набирать текст – выпадающий список отображается и содержит в себе данные которые в текущий момент совпадают с набранным текстом. Набирать чего-то чего нет в заданной колонке модели не давать.
Дополнительные пожелания и комментарии:
Для всех трёх состояний валидатора чтоб цвета фона поля ввода менялись на заданный.
Размер выпадающего списка чтоб конечный пользователь мог менять (QSizeGrip)
Код должен быть в достаточной мере прокомментирован, так как потом может меняться.
Модель потенциально может содержать большое кол-во элементов. По этому по возможности писать всё оптимально.