Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переполнение буфера или ...
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
sidsukana
Здравствуйте. Есть такая проблема.
Есть объект - интерфейс, есть объект поиска. При нажатии кнопки поиск, происходит создание потока, и в потоке создается объект поиска.
Поиск - формирует QStandardItemModel и применяет его на QTableView в объект интерфейса посредством ивентов. (забыл сказать, что вынесено все в поток изза того что формируется модель 10000+ строк и 2 столбца, поиск ведется по одному символу из другого бинарного файла (ну это не важно так как сам поиск в цикле проходит быстро) Так вот, при первом запуске программы, первый поиск проходит реактивно и буквально за секунду табличка сформирована и результат есть в вьювере. Но стоит запустить снова такой же поиск как интерфейс зависает и все работает как будто без потоков и ивентов(блок интерфейса на 5-10 секунд и тд.)

Самое интересное что поток проходит успешно и завершается. А зависание происходит после выполнения потока.
Прошу помощи :) Может какое переполнение буфера при составлении огромной модели?
xls
Вопрос : передаете ли вы сформированную в доппотоке модель в основной поток ( moveToThread) ?. Если нет, то это надо делать.
Проблема может быть в том, что при присвоении новой модели QTableView он пытается удалить предыдущую модель и время уходит на это.
В этом случае можно сделать так: отсоединить старую модель от QTableView , назначить новую , послать старую в другой поток и вызвать ее метод deleteLater().
Более точную инфу может показать только вскрытие ) (исходного кода).
sidsukana
Нет не использовал. Т.е при создании потока в конструкторе вызывать moveToThread(this) ? А как из этого потока допустим отсылать данные в основной не через ивент? И можете подсказать, что это за метод отсоединения модели от вьювера? :) Я что-то не нашел)
sidsukana
https://bitbucket.org/sidsukana/qsw жду помощи :)
sidsukana
Опять я прослакал :) В конструкторе давным давно остался сигнал ресайза строк по контенту, что очень сильно подвешивает приложение) Убрал и все стало летать)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.