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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: большой QCompleter  (Прочитано 7336 раз)
Amouse
Гость
« : Май 06, 2008, 18:00 »

Если в процессе набора строки, кол-во строк "автозаполнения" в QCompleter получается большим (несколько сот)
и не слишком быстрым в формировании - появляется необходимость заполнять QCompleter частично, теми строками, что уже найдены. И соответственно, QCompleter должен иметь скроллирование, по которому ищутся и заполняются очередные строки.
 
Соственно, как это сделать? Я даже что-нибудь вроде OnScroll в комплитере не вижу.
Записан
Amouse
Гость
« Ответ #1 : Май 08, 2008, 11:44 »

А как-нибудь можно completer вынести в другой поток?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Май 08, 2008, 11:48 »

А как-нибудь можно completer вынести в другой поток?

Это не GUI класс, так что можно вынести в отдельный поток. Только непонятно зачем и как при этом будет происходить с ним работа?
« Последнее редактирование: Май 08, 2008, 11:50 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Вячеслав
Гость
« Ответ #3 : Май 08, 2008, 14:16 »

Ну подцепи к нему модель и рули ей как хош Подмигивающий точнее связку прокси + модель данных .
Прокси нужен чтоб фильтровать только нужные хвосты( я в модель данных добавлял поле - видимая строка или нет ) .
Записан
Amouse
Гость
« Ответ #4 : Май 08, 2008, 17:10 »

Это не GUI класс, так что можно вынести в отдельный поток. Только непонятно зачем и как при этом будет происходить с ним работа?

так в том-то и дело, Completer прикручивается к QComboBox, который GUI. И что тогда выносить в поток, и как оно будет работать?

А зачем - чтобы программа не висла на несколько секунд (или больше) когда Completer шарится по диску читая файлы и формируя свою структуру, которая может быть и больше 1000 строк.
Записан
Amouse
Гость
« Ответ #5 : Май 08, 2008, 17:11 »

Прокси нужен чтоб фильтровать только нужные хвосты

что за хвосты?   Непонимающий
Записан
Amouse
Гость
« Ответ #6 : Май 08, 2008, 17:14 »

собственно со скролированием - хрен с ним. (первоначальная идея была - подгрузка строк в completer`e по мере скролирования).
Пусть completer формируется сразу весь (скролинг тогда обрабатывать не нужно, но и дефолтный будет нормально работать),
но вот сделать так, чтобы программа не подвисала в процессе набора строки текста (и соотв-но работы completer),
без этого очевидно никак.
Записан
Вячеслав
Гость
« Ответ #7 : Май 08, 2008, 19:01 »

Прокси нужен чтоб фильтровать только нужные хвосты

что за хвосты?   Непонимающий
Нужные элементы , которые сейчас должны быть обработаны комплитером
А тормоза-то с чего ? Сформируй 1 раз модель и скармливай ее нужным товарисчам Подмигивающий
Записан
Amouse
Гость
« Ответ #8 : Май 12, 2008, 14:31 »

А тормоза-то с чего ?

зашли в каталог, стали набирать имя файла, а каталог большой, пока весь прочли, сформировали новые данные для модели, вот и тормоза.
Записан
Electronix
Гость
« Ответ #9 : Май 19, 2008, 00:26 »

А эти большие каталоги всегда не определенные ? Ты можешь их хотя бы знать заранее ? И например при запуске программы создовать некий индекс по этим каталогам и работать с ним уже всегда.
Записан
Amouse
Гость
« Ответ #10 : Июнь 03, 2008, 15:49 »

Судя по описанию setModel(), при установке очередной модели предыдущая делититься. Надо ли это понимать так, что при delete самого QCompleter связанная с ним модель тоже удалиться автоматом?
Во всяком случае в примере Completer, delete для модели нет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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