Qt5信號與槽新寫法

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的語法,指明參數類型和數量。參數

注:信號與槽函數最好不要重載

相關文章
相關標籤/搜索