Qt 中也允許自定義信號
①自定義槽函數,非常關鍵.開發中大部分情況都是需要自定義槽函數的.
槽函數,就是用戶觸發某個操作之后,要進行的業務邏輯.
②自定義信號,比較少見.實際開發中很少會需要自定義信號.
信號就對應到用戶的某個操作~
在 GUI,用戶能夠進行哪些操作,是可以窮舉的~~
Qt 內置的信號,基本上已經覆蓋到了上述所有可能的用戶操作.
因此,使用 Qt 內置的信號,就足以應付大部分的開發場景了
自定義信號,本身代碼比較簡單的~
③Owidget
咱們的 Widget 雖然還沒有定義任何信號, 由于繼承自 QWidget, 和 QObject,這倆類里面已經提供了一些信號了,可以直接使用.
所謂的 Qt 的信號,本質上也就是一個“函數”
Qt 5 以及更高版本中,槽函數和普通的成員函數之間,沒啥差別了.
④但是,信號,則是一類非常特殊的函數.
程序員只要寫出函數聲明,并且告訴 Qt,這是一個“信號”即可.
這個函數的定義,是 Qt 在編譯過程中,自動生成的.(自動生成的過程,程序員無法干預)
(信號在 Qt 中是特殊的機制.Qt 生成的信號函數的實現,要配合 Qt 框架做很多既定的操作~~)
作為信號函數,這個函數的返回值,必須是 void
有沒有參數都可以.甚至也可以支持重載
⑤signals:
這個也是 Qt 自己擴展出來的關鍵字~~
qmake 的時候, 調用一些代碼的分析/生成工具
掃描到類中包含 siqnals 這個關鍵字的時候,此時,就會自動的把下面的函數聲明認為是信號,并且給這些信號函數自動的生成函數定義