2010-04-22 80 views
2

我的信令我的Qt GUI線程從一個boost ::線程,我使用一個Qt :: QueuedConnection,信號QT,QueuedConnection

connect(src, SIGNAL(signal-signature), dest, SLOT(slot-signature), Qt::QueuedConnection); 

,仍然,當我發出信號我的槽沒有被調用。

編輯:我發現這個問題,看起來我連接信號後,然後我的電話,但我確信否則,因爲斷點首先在連接調用的GUI線程停止,然後在調度線程確實的幫助和想法EMIT

TY大家:d

+0

我們需要更多的代碼才能夠回答。你正在嘗試做什麼是可能的,這是'connect()'的正確語法' – 2010-04-22 19:53:37

+0

謝謝,這幫助我 – 4pie0 2013-06-18 13:23:53

回答

2

檢查插槽名稱和信號名稱是否正確。通常,如果有問題(名稱不正確),則在控制檯中發出這個信號(錯誤消息)。另外,您可以檢查連接函數調用的結果。如果連接不成功,它應該返回false。

+0

連接返回true,連接成功,插槽和信號名稱正確,我打電話給信號從一個非Qt線程 – lj8888 2010-04-22 11:20:02

0

我會假設兩個線程都需要QEread和QEventLoop來完成這項工作。

+0

我的發射是從一個非Qt線程完成的 – lj8888 2010-04-22 11:20:36

+1

這就是爲什麼你使用Qt :: QueuedConnection - 它會導致接收對象的事件循環執行插槽。他想要做的事情能夠正常工作,他只是出了一些我們無法看到的錯誤。 – 2010-04-22 19:47:34

+0

不正確。我可以使用信號插槽機制從Posix線程更新Qt GUI – 4pie0 2013-06-18 13:24:45