Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: boruh от Июль 30, 2009, 12:09



Название: Контекстный поиск в QComboBox
Отправлено: boruh от Июль 30, 2009, 12:09
Всем привет.
Задача состоит в том, чтобы в QComboBox происходила фильтрация элементов по вводимой строке. Первое, что приходит на ум - это QCompleter, однако он фильтрует только по началу строки, а нужно фильтровать по подстроке, а-ля LIKE в SQL.
Подобная тема уже была
http://www.prog.org.ru/topic_7386_0.html (http://www.prog.org.ru/topic_7386_0.html)
однако там так и не предложили никакого решени и она была заброшена. Поднимаю снова этот вопрос! Уважаемые знатоки Qt, неужели ни разу не приходилось сталкиваться с такой задачей? Мне все таки кажется что не у одного меня возникал подобный вопрос.



Название: Re: Контекстный поиск в QComboBox
Отправлено: majatu от Июль 30, 2009, 13:14
а почему для комплитера нельзя сделать setQuery ?!  ты можешь в комплитер запихать tableview ,а в него sqlquerymodel , а setQuery менять по сигналу ввода


Название: Re: Контекстный поиск в QComboBox
Отправлено: boruh от Июль 30, 2009, 20:01
нет нет, не поймите меня неправильно! Во первых мне не по БД нужен поиск, у меня набор значений фиксирован.
Во вторых, если мы говорим про QCompleter, то мы говорим не про комбобокс, правильно? Ведь QCompleter цепляется к LineEdit'у, а выпадающий список - это уже результат работы самого QCompleter'а.
Если эту задачу рассмотреть с точки зрения комбобокса, то наверное тут нужно встраивать прокси-модель, которая будет фильтровать основную модель. А отображаться уже должна прокси-модель, которая фильтрует необходимые элементы.


Название: Re: Контекстный поиск в QComboBox
Отправлено: ритт от Июль 30, 2009, 20:05
отображается всегда вьюха...
но ход мысли верный  :)


Название: Re: Контекстный поиск в QComboBox
Отправлено: boruh от Июль 31, 2009, 01:48
ну, если уж на то пошло, то вьюха отображаЕТ, а модель отображаЕТСЯ (во вьюхе).  ;)
но это все болтология, сутьи дела это не меняет.

Так что же по существу можете сказать, товарищи?  ???