Russian Qt Forum
Ноябрь 25, 2024, 22:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: qt-4.6.0: QCompleter - отключить фильтрацию?  (Прочитано 3829 раз)
mal
Гость
« : Январь 14, 2010, 19:54 »

можно ли (и если можно то как?) сделать так, чтоб QCompleter не фильтровал поданый ему список строк.

Ковырял кутовый пример customcompleter, но так и не понял можно ли так сделать.
Установка комплетеру свойства QCompleter::UnfilteredPopupCompletion не помогает
Код:
completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion);

Конкретно есть список данных в которых образец поиска включен не только в начале строки. В примере customcompleter происходит фильтрация по образцу с начала строки.
У меня есть список строк, который  я хочу вывалить во время редактирования в QLineEdit, так как оно сделано в кутовом примере. Т.е. в фокусе ввода находится QLineEdit, а список строк содержащих образец ввода виден в всплывающем виджете. Причем по ним доступен скролинг. Строки я готовлю в другом месте сам, и в них ничего не надо фильтровать. Создавать отдельно QListWidget, стыковать его к QLineEdit как то коряво, ибо есть практически готовая реализация в customcompleter.
Хотелось бы использовать реализацию QLineEdit c QCompleter, но как отказаться в комплетере от фильтрации не понимаю.
Есть идеи?
« Последнее редактирование: Январь 14, 2010, 19:59 от mal » Записан
mal
Гость
« Ответ #1 : Январь 15, 2010, 13:56 »

Подсказал мне тут Kirill , что в моем случае не надо смотреть на реализацию customcompleter, т.к.  список у меня каждый раз получается статический.
Сделал так (детали опускаю)
Код:

QStringListModel *model = new QStringListModel(list); // создал модель , list - сформированный QStringList
QCompleter completer = new QCompleter(this); // создал комплетер
completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion); // вываливать все без фильтрации

completer->setModel(model); // установили модель
combo_box->setCompleter(completer); // установили комбобоксу комплетер
completer->complete(); // раскрыли комплетер

так работает. При каждой смене образца поиска создаю новую QStringListModel и подсовываю ее в комплетер.
Цель достигнута, проблема решена.
« Последнее редактирование: Январь 15, 2010, 14:14 от mal » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.