槽和普通的 c++成員函數很像。它們可以是虛函數(virtual),也可被重載
(overload),可以是公有的(public),保護的(protective),也可是私有的(private),
它們可以象任何 c++成員函數一樣被調用,可以傳遞任何類型的參數。不同在于一個槽函
數能和一個信號相連接,只要信號發出了,這個槽函數就會自動被調用。
1、一個信號可以連接到多個槽:
2、多個信號可以連接到一個槽
3、一個信號可以和另一個信號相連
connect(lineEdit, SIGNAL(textChanged(const QString &)),
this, SIGNAL(updateRecord(const QString &)));
4、連接可以被刪除
disconnect(lcd, SIGNAL(overflow()),this, SLOT(handleMathError()));
這個函數很少使用,一個對象刪除后,Qt 自動刪除這個對象的所有連接。
信號和槽函數必須有著相同的參數類型,這樣信號和槽函數才能成功連接:
如果信號里的參數個數多于槽函數的參數,多余的參數被忽略:
如果參速類型不匹配,或者信號和槽不存在,在 debug 狀態時,Qt 會在運行期間給出
警告。如果信號和槽連接時包含了參數的名字,Qt 將會給出警告
但是信號和槽機制在 QObject 中就實現了, 可以實現在任何從 QObject 繼承的子類中。