1. 程式人生 > >Qt開發 槽函式定義,以及槽函式二次響應多次響應問題

Qt開發 槽函式定義,以及槽函式二次響應多次響應問題

在Qt開發裡面,有一種傳說中的訊號槽機制,有好幾種實現的方法。

為了實現ui和邏輯的解耦,Qt開發可以利用Qt designer來做UI,同時也有一些UI和邏輯函式之間的通訊建立。
例如,要實現button的相應,有下面幾種方法: 1 可以在<編輯訊號/槽>模式下面,自己定義訊號和槽函式,然後在視窗類裡面,把相應的槽函式定義好 2 可以純程式碼實現。把ui的控制元件拖動好,把槽函式寫好,然後用一句connect(...)就可以把訊號(例如click)和槽(例如void ButtonClicked()) 連結起來。實際上,Qt designer做的也就是在初始化的時候把這個connect自動實現了,不需要開發者去敲。 3 可以利用一些預設的函式。例如,一個pushButton叫nextButt,那麼Qt系統提供click,press等訊號,然後只要在視窗類裡面,定義如
private slot:
on_nextButt_clicked();
//或者
on_nextButt_pressed();


這樣子的槽函式,就相當於重寫Qt提供的預設槽函式,同樣可以把按鈕相應做出來。
注意一點,連線了多少次,槽函式就會相應多少次。 所以如果把上述1 2 3都做一遍,槽函式就會執行三次。。呵呵。。就是這麼任性。。duang