1 Qt4信號槽寫法:函數
connect(obj1, SIGNAL(fun1(param1, param2,...)), obj2, SLOT(fun2(param1,...))); 字符串
//編譯後編譯
connect(obj1, "fun1(param1, param2,...)", obj2, "fun2(param1,...)");lambda
問題:在程序編譯階段,程序會將函數以字符串的形式進行連接,程序不會檢查信號/槽函數是否存在,只有在運行期間纔會驗證是否正確語法
2 Qt5信號槽新寫法:程序
connect(obj1, &ClassA::fun1, obj2, &ClassB::fun2);方法
好處:編譯期間就會檢查信號與槽是否存在,參數類型檢查,Q_OBJECT是否存在,槽函數不在限定必須是slot,能夠是普通的函數、類的普通成員函數、lambda函數co
問題:函數重載,有可能會形成程序的困擾,不知道該具體連接哪一個字符
3 函數重載時解決方法,使用Qt4的語法,指明參數類型和數量。參數
注:信號與槽函數最好不要重載