在QT中,咱們的信號函數與槽函數是須要參數匹配的,只有參數匹配了,moc才能將這兩個函數聯繫起來,不然編譯器將沒法分辨該調用哪一個函數。函數
那麼若是出現了,一個信號函數擁有兩種不一樣的參數,咱們的槽函數須要如何申明呢?
在QT4中,咱們的鏈接使用的是兩個不一樣定義的宏,這樣咱們能夠顯式的給出咱們須要的參數類型,可是在QT5中,咱們通常不使用宏定義,咱們對一個鏈接的聲明以下:spa
QObject::connect(*sender,&signal,*receiver,&slot);
能夠明顯看到,咱們沒法在聲明中顯示的給出咱們須要的參數類型,那麼接下來爲了解決不一樣參數的重載問題,咱們須要的是顯式的創立一個信號函數的指針,下面直接給出例子,例如我須要處理QComBox中的currentIndexChaned信號,這個信號有兩種參數,一是QString,另外一個是int,咱們須要使用的int這個信號函數:指針
void (QComboBox::*fun)(int) = &QComboBox::currentIndexChanged; QObject::connect(comboBox,fun,*receiver,&slot);
這樣,咱們傳遞給槽函數的信號就是int型的了,也就解決了重載信號函數的問題。code