Название: Qthread QListWidget добавление элементов в таблицу с потока Отправлено: folax от Декабрь 05, 2015, 13:29 Добрый день.
Делаю окно поиска файлов, разбил программу на два класса. 1) GUI окно с потоком 2) класс в котором происходит поиск файлов, в этом классе происходит генерация сигнала найденного файла типа QString и потом уже в класс GUI под средством слота передаю эту строку QListWidget. Когда конкретные файлы то всё работает отлично, но когда я начинаю например поиск всех файлов в диске D: (много файлов), то окно подвисает, в конечном результате оно нормально всё потом отображает, все файлы с диска D: Вопрос: как добиться чтобы в QListWidget добавлялись файлы при поиске так же плавно как и в TotalCommander, когда в нём ищешь то там файлы нормально без подвисаний добавляются. Ниже участки кода: 1) блок вычисления Код: void filesSearchEngine::process() 2) блок в GUI, слот добавления элементов в QListWidget Код: void wgtFilesSearch::addItemToFileList(QString data) добавление в поток Код: //thread ниже стандартные коннекты Название: Re: Qthread QListWidget добавление элементов в таблицу с потока Отправлено: folax от Декабрь 07, 2015, 12:37 Отвечу сам на свой вопрос, начал искать в гугле по запросу QListWidget slow, и вывело меня на такой ответ.
The view tries to calculate the individual size of each new item. Since you probably don't need that, you can disable it and gain some speed with: Код: ui->listWidget->setUniformItemSizes(true); Так как у меня при поиске в корне диска может быть больше 15000 элементов видимо происходил просчёт индивидуального каждого нового размера элемента. В общем при этом флаге разморозился QListWidget и начал работать без проседаний. Название: Re: Qthread QListWidget добавление элементов в таблицу с потока Отправлено: popper от Декабрь 07, 2015, 12:53 Элементы в дереве можно выводить по требованию.
Fetch More Example: http://doc.qt.io/qt-5/qtwidgets-itemviews-fetchmore-example.html |