關於多個訊號鏈結到相同槽函式區分訊號發出者

2021-07-11 03:22:00 字數 456 閱讀 6737

問題描述: 多個qbutton 起發出的訊號鏈結到同乙個槽函式中, 在槽函式中要根據訊號發出者的不同做不同操作

要用到qobject_cast(),

qobject_cast()函式和標準c++的dynamic_cast()功能類似,只是其不需要rtti的支援,而且可以跨越動態連線庫的邊界。它嘗試將它的引數cast成尖括號內的物件型別,如果物件是正確的型別(執行時決定)則返回非零,否則返回0,說明物件型別不相容。

函式原型:

t qobject_cast ( qobject * object )

本方法返回object向下的轉型t,如果轉型不成功則返回0,如果傳入的object本身就是0則返回0。

在使用時有兩個限制:

1# t型別必須繼承自qobject。

2# 在宣告時必須有q_object巨集。

參考文獻:

多個訊號關聯乙個槽函式如何區分

qt 訊號多個鏈結槽 QT 訊號和槽鏈結時注意事項

1 需要繼承qobject 2 需要有q object巨集。3 如果有多重的繼承關係,則每個子類都需要單獨寫q object巨集,不能因為父類有q object巨集就省略。4 繼承qobject的類的宣告必須在.件中,否則無法產生moc檔案,訊號和槽的鏈結就不起作用。1 class myclass ...

QT多個訊號鏈結乙個槽

做專案的時候需要用到多個訊號鏈結乙個槽,多個訊號來自不同的控制項,怎麼能分辨出是哪個控制項。看 widget widget qwidget parent qwidget parent void widget button name 四個button按鈕鏈結到乙個槽函式button name 上,通過...

PyQt5基礎學習 多個訊號對應多個槽

這裡主要是有兩種情況 1.乙個訊號連線多個槽函式 2.多個訊號連線乙個槽函式 訊號槽n對n連線與斷開連線 from pyqt5.qtcore import class nnsignal qobject signal1 pyqtsignal signal2 pyqtsignal int signal3...