как подключить сигнал к слоту в другом потоке?

StackOverflow https://stackoverflow.com/questions/627948

  •  06-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Сигналы и слоты в разных потоках , которые можно найти на начальной странице официальной документации Qt .

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top