QTreeWidget заполнить из потока Элемент расширен - PullRequest
0 голосов
/ 18 января 2020

Я заполняю свой QTreeWidget из потока. Пока работает хорошо, но после заполнения данных все элементы не раскрываются, но становятся доступными. Все элементы, которые я добавил, я устанавливаю ...setExpanded(true);

Это приводит в конце к проблеме, что treeCount() равно 1.

Я хочу избежать установки в конструкторе expandAll, и я также хочу избежать составления дополнительного списка для подсчета предметов.

Если я запускаю метод заливки из общего потока приложения как простую функцию, все, что я ...setExpanded(true); раскрывается после заполнения.

Есть ли уловка, чтобы избежать этой проблемы?

1 Ответ

1 голос
/ 18 января 2020

Никогда не искалечьте объект QObject из другого потока. Все GUI объектные операции должны выполняться в одном и том же потоке.

Используйте механизм сигналов / слотов между вашими потоками для передачи новых элементов. В качестве альтернативы, установите новый Q * ItemModel в дополнительном потоке и передайте его один раз в сигнале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...