Qt 槽機制:public slots 和 private slots,protected slots

槽是普通的 C++ 成員函數,可以被正常調用,它們唯一的特殊性就是很多信號可以與其相關聯。當與其關聯的信號被髮射時,這個槽就會被調用。槽可以有參數,但槽的參數不能有缺省值。

既然槽是普通的成員函數,因此與其它的函數一樣,它們也有存取權限。槽的存取權限決定了誰能夠與其相關聯。同普通的 C++ 成員函數一樣,槽函數也分為三種類型,即 public slots、private slots 和 protected slots。

public slots:在這個區內聲明的槽意味著任何對象都可將信號與之相連接。這對於組件編程非常有用,你可以創建彼此互不瞭解的對象,將它們的信號與槽進行連接以便信息能夠正確的傳遞。

protected slots:在這個區內聲明的槽意味著當前類及其子類可以將信號與之相連接。這適用於那些槽,它們是類實現的一部分,但是其界面接口卻面向外部。

private slots:在這個區內聲明的槽意味著只有類自己可以將信號與之相連接。這適用於聯繫非常緊密的類。

槽也能夠聲明為虛函數,這也是非常有用的。

槽的聲明也是在頭文件中進行的。例如,下面聲明瞭三個槽:

public slots:

void mySlot();

void mySlot(int x);

void mySignalParam(int x,int y);

如果是槽函數的話一定要指明它是slots 否則用不了,而public private protected 這些跟C++一樣


分享到:


相關文章: