как подключить сигнал к слоту в другом потоке? - PullRequest
2 голосов
/ 09 марта 2009

Qt обычно использует сигналы и слоты в одном потоке, поэтому вызов сигнала вызовет слот в том же вызываемом потоке. Можно ли использовать механизм сигнальных слотов для передачи сообщения в поток qt (поэтому слот будет вызываться позже в контексте указанного потока)?

Ответы [ 3 ]

10 голосов
/ 09 марта 2009
0 голосов
/ 23 декабря 2012

По крайней мере, с Qt4 это совсем не проблема. Вам просто нужно установить соединение где-нибудь, где у вас есть переменные, указывающие на оба потока. (т.е. обычно в main ())

0 голосов
/ 09 марта 2009

Я думаю, что обычный способ справиться с этим состоит в том, чтобы обработчик сигнала ставил в очередь какую-то другую функцию (используя boost :: bind или что-то подобное), а затем заставлял целевой поток запустить его позже.

...