Название: большой QCompleter Отправлено: Amouse от Май 06, 2008, 18:00 Если в процессе набора строки, кол-во строк "автозаполнения" в QCompleter получается большим (несколько сот)
и не слишком быстрым в формировании - появляется необходимость заполнять QCompleter частично, теми строками, что уже найдены. И соответственно, QCompleter должен иметь скроллирование, по которому ищутся и заполняются очередные строки. Соственно, как это сделать? Я даже что-нибудь вроде OnScroll в комплитере не вижу. Название: Re: большой QCompleter Отправлено: Amouse от Май 08, 2008, 11:44 А как-нибудь можно completer вынести в другой поток?
Название: Re: большой QCompleter Отправлено: pastor от Май 08, 2008, 11:48 А как-нибудь можно completer вынести в другой поток? Это не GUI класс, так что можно вынести в отдельный поток. Только непонятно зачем и как при этом будет происходить с ним работа? Название: Re: большой QCompleter Отправлено: Вячеслав от Май 08, 2008, 14:16 Ну подцепи к нему модель и рули ей как хош ;) точнее связку прокси + модель данных .
Прокси нужен чтоб фильтровать только нужные хвосты( я в модель данных добавлял поле - видимая строка или нет ) . Название: Re: большой QCompleter Отправлено: Amouse от Май 08, 2008, 17:10 Это не GUI класс, так что можно вынести в отдельный поток. Только непонятно зачем и как при этом будет происходить с ним работа? так в том-то и дело, Completer прикручивается к QComboBox, который GUI. И что тогда выносить в поток, и как оно будет работать? А зачем - чтобы программа не висла на несколько секунд (или больше) когда Completer шарится по диску читая файлы и формируя свою структуру, которая может быть и больше 1000 строк. Название: Re: большой QCompleter Отправлено: Amouse от Май 08, 2008, 17:11 Прокси нужен чтоб фильтровать только нужные хвосты что за хвосты? ??? Название: Re: большой QCompleter Отправлено: Amouse от Май 08, 2008, 17:14 собственно со скролированием - хрен с ним. (первоначальная идея была - подгрузка строк в completer`e по мере скролирования).
Пусть completer формируется сразу весь (скролинг тогда обрабатывать не нужно, но и дефолтный будет нормально работать), но вот сделать так, чтобы программа не подвисала в процессе набора строки текста (и соотв-но работы completer), без этого очевидно никак. Название: Re: большой QCompleter Отправлено: Вячеслав от Май 08, 2008, 19:01 Прокси нужен чтоб фильтровать только нужные хвосты что за хвосты? ??? А тормоза-то с чего ? Сформируй 1 раз модель и скармливай ее нужным товарисчам ;) Название: Re: большой QCompleter Отправлено: Amouse от Май 12, 2008, 14:31 А тормоза-то с чего ? зашли в каталог, стали набирать имя файла, а каталог большой, пока весь прочли, сформировали новые данные для модели, вот и тормоза. Название: Re: большой QCompleter Отправлено: Electronix от Май 19, 2008, 00:26 А эти большие каталоги всегда не определенные ? Ты можешь их хотя бы знать заранее ? И например при запуске программы создовать некий индекс по этим каталогам и работать с ним уже всегда.
Название: Re: большой QCompleter Отправлено: Amouse от Июнь 03, 2008, 15:49 Судя по описанию setModel(), при установке очередной модели предыдущая делититься. Надо ли это понимать так, что при delete самого QCompleter связанная с ним модель тоже удалиться автоматом?
Во всяком случае в примере Completer, delete для модели нет. |