信號和槽

信號和槽是QT的重要組成部分,它可以讓應用編程人員把這些相互不瞭解的對象綁定在一起.

槽:它和普通的C++成員函數幾乎是一樣的,可以是虛函數,可以被重構,可以是公有的,保護或是私有的.並且可以被其它成員函數直接調用,它的參數可以是任意類型.

唯一不同的是,它可以和信號連接一起,每當信號發生的時候,就會自動調用對應槽.

信號和槽的連接的形式如下:

connect(sendder,SIGNAL(signal),receiver,SLOT(slot));

其中sender,receiver是指向QObject的指針,sinal,slot是對應的函數,如

 connect(lineEdit,SIGNAL(textChanged(const QString &)),
            this,SLOT(enableFindButton(const QString &)));

1.一個信號可以連接多個槽

在發射信號的時候,會以不確定的順序一個接一個地調用這些槽

2.多個信號可以連接同一個槽


3.一個信號可以與另外一個信號相連接

connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SIGNAL(updateRecord(const QSring &));

當發射第一個信號時,也會發射第二個信號,除此這外,信號與信號之間的連接和信號與槽之間的連接是難以區分


4.連接可以被移除

disconnect(lcd,SIGNAL(overflow()),this,SLOT(handleMathError());


要把信號成功連接到槽(或是另一個信號),它們的參數必須具有相同的順序與相同的類型


信號和槽的機制可以用於任何的QObject的子類中




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章