首先不能繼承QObject的情況在開發中遇到得並不多,筆者在一年多的Qt項目開發中只遇到兩三次。而且都是因為引進了第三方庫導致編譯過程中報錯。
要想解決這個問題其實不難,因為筆者遇到的問題都是想定義一個信號,定義的槽情況沒有遇到過,可以提出一個想法,有需要的朋友試一下。
要想實現信號發送,可以定義一個信號發射器類繼承於QObject,然后在想要發送信息的類里定義一個信號發射器:

圖1

圖2
只要在想觸發信號的地方調用信號發射器的sendMsg()函數就可以讓信號發射器將信號發出。
要想實現槽的話,可以同處理信號的方式解決,建立一個信號處理器,將要處理的內容傳入其中即可。
另外還想啰嗦幾句,雖然這個方法是筆者為了解決某些類不能繼承於QObject想到的,但是不只限於解決這一種情形。
在一次項目中,遇到一個問題:很多個(自動添加的)控件,點擊某個控件就將其自帶的信息顯示在一個文本框中,我解決的方案就是將一個信號處理器使用單例模式編寫,在控件的基類中的clicked()響應的槽函數中去調用sendMsg()實現的。
http://www.jianshu.com/p/b0dc50cb0119