Qt4 дочерний поток редактирует Gui на mainthread
У меня есть табличный виджет, который должен быть дополнен данными из дочернего потока.
Я получаю эту ошибку. Не безопасно использовать растровые изображения вне потока GUI. В C# я использовал Disptacher, чтобы указать mainThread добавить данные в объект GUI.
Я полагаю, есть некоторые, как-то близко к этому? Я использую qt4.7 Я сделал слот в родительском объекте и сигнал в объекте потока... сигнал испускания дочернего потока, чтобы послать сигнал в слот в родительском объекте. но сигнал не стреляет. когда я выполняю метод следующим образом: object->run(); (т.е. из mainthread) он работает нормально.. но когда я выполняю его из объекта потока->start(); сигнал не сработал.. мне нужно сделать какую-то работу с потоком не в mainthread..
ОБНОВЛЕНИЕ -27/09 Я только что дошел до корня проблемы.. Сигнал и слот работают, но дочерний поток запускает объект qnetworkaccessmanger, который вызывает все эти проблемы.. Я прокомментировал объект networkaccess и никакой ошибки.. Мне нужен поток, чтобы вызвать сетевой запрос.. и обновить результаты в графическом интерфейсе..
1 ответ
Самый простой способ - использовать механизм сигнала / слота Qt с типом соединения Qt:: QueuedConnection. Это ставит в очередь вызов слота в потоке, в котором автоматически находится объект-получатель.