QT 信號和槽看似connect不上

調試時發現有些信號發射了,但是與之相關的槽函數沒有執行的原因,目前遇到的有:

1.語法錯誤

仔細檢查格式是不是對的,然後參數是否對應

2.一個類中的信號與另一個類中的槽函數

在SIGNAL()和SLOT()中的括號裏寫的直接就是槽和信號的名字,不用再加作用域。

例如類A和類B,A中的某個槽函數Slot_A()與B的信號Signal_B(),然後A在B中實例化爲a,那麼在B中connect(this, Signal_B(), &a, A::Slot_A() );這句話錯的蠻嚴重的。

應爲connect(this, SIGNAL( Signal_B() ), &a, SLOT( Slot_A() ));

3.有遇到一個:槽函數沒有聲明成public/protected... slots: ,而只聲明成一個函數了。

4.在a.exec()前加無限循環了。參見 Qt main函數a.exec()函數

2017/11/20 今天有一個同事也遇到了這個問題,他是在Qt那個主的類中的一個槽函數有while死循環,而這個槽函數的信號一直被一個線程發射,所以orz。

待增。。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章