Мой пользовательский интерфейс использует QTreeView с QFileSystemModel, чтобы иметь возможность выбирать папки и файлы. В документации для QFileSystemModel говорится, что обновление файловой структуры выполняется в отдельном потоке, что означает, что пользовательский интерфейс не будет заблокирован. Однако для меня это не так, и я не могу понять, в чем несоответствие и как другие люди не сталкиваются с этой проблемой. После отладки я заметил, что слот QFileSystemModel _q_fileSystemChanged, который занимает большую часть времени, по-прежнему выполняется в основном потоке пользовательского интерфейса, что имеет смысл. Вопрос заключается в том, как документация утверждает, что она не будет блокировать пользовательский интерфейс. Есть ли решение? Я что-то неправильно понимаю?
Чтобы воспроизвести - Создайте QTreeView с QFileSystemDataModel - Установите корневой путь в "" или "/" - Установите точку останова в слоте QFileSystemModel _q_fileSystemChanged - Разверните один из дисков после загрузки приложения
Проблема: - Слот вызывается в потоке пользовательского интерфейса, что блокирует приложение до его завершения.
Есть способы ускорить синтаксический анализ файлов, но мне действительно нужно выполнить его в отдельном потоке и уведомить, когда данные будут заполнены и готовы для QTreeView.
Спасибо, Иннокентий.