2

У меня есть приложение Qt4, которое связывает QStandardItemModel с QListView и обновила модель из фона/не-интерфейса.Изменение QStandardItemModel из не-UI QThread?

Иногда, когда метод QStandardItemsetText(..) вызывается очень многократно из потока, отличного от UI, приложение будет аварийно завершено в обработчике la dataChanged (..). Я могу воспроизвести проблему, повторно вызвав setText("xxxxx") в цикле for. В моем приложении данные считываются из сети, поэтому я обновляю модель в отдельном потоке, отличном от UI.

Это общий pb? Если я правильно понял, это связано с подключением в очереди, а QStandardItemModel не является потокобезопасным? Как обойти эту проблему?

Спасибо!

ответ

4

QStandardItemModel является частью библиотеки QtGui, и все классы в ней считаются не потокобезопасными. Вы должны быть в порядке, если вы переместите фактическую настройку данных в поток графического интерфейса. Вы можете сделать это довольно легко, используя сигнал очереди из сетевого потока.

+0

Похоже, это вариант. Мне нужно идти. Благодаря! – Gant

 Смежные вопросы

  • Нет связанных вопросов^_^