Qt4 дочерний поток редактирует Gui на mainthread - PullRequest
0 голосов
/ 26 сентября 2011

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

Я получаю эту ошибку Использование рисунков вне потока GUI небезопасно .В c # я использовал Disptacher, чтобы сказать mainThread добавить данные в объект графического интерфейса.

Я предполагаю, что есть что-то похожее на это?Я использую qt4.7 Я сделал слот в родительском объекте и сигнал в объекте потока ... сигнал испускания дочернего потока, чтобы отправить сигнал в слот в родительском объекте.но сигнал не стреляет.когда я выполняю метод следующим образом: object-> run ();(т.е. из mainthread) он работает нормально .. но когда я выполняю его из объекта потока-> start ();сигнал не сработал .. мне нужно сделать какую-то работу с потоком не в mainthread ..

ОБНОВЛЕНИЕ - 27/09 Я только что получил к корню проблемы ..Сигнал и слот работают, но дочерний поток запускает объект qnetworkaccessmanger, который вызывает все эти проблемы. Я прокомментировал объект networkaccess, но ошибки не было. Мне нужен поток для вызова сетевого запроса ... и обновления результатов в графическом интерфейсе...

1 Ответ

2 голосов
/ 26 сентября 2011

Самый простой способ - использовать механизм сигналов / слотов Qt с типом соединения Qt :: QueuedConnection .Это ставит в очередь вызов слота в потоке, в котором автоматически находится объект-получатель.

...