訊號和槽是qt程式設計的基礎,在qt中關聯訊號和槽用到的是
qobject::connect(const qobject * sender, const char * signal, const qobject * receiver, const char * method, qt::connectiontype type = qt::autoconnection);
其中的sender,receiver都是指向cobject的指標,signal和loat都是函式名 。
在使用中有一些值得注意的地方。比如:
qobject::connect(scrollbar, signal(valuechanged(int)),
label, slot(setnum(int)));
// wrong
qobject::connect(scrollbar, signal(valuechanged(int value)),
label, slot(setnum(int value)));
函式的形參不能帶有變數名,當帶有變數名的時候就會出錯,return false;
訊號和槽連線的可能性:
1.乙個訊號可以連線多個槽
connect(slider , signal(valuechanged(int)) , spinbox , slot(setvalue(int)) );
connect(slider , signal(valuechanged(int)) , this , slot(updatestatusbarindicator(int)) );
當傳送這個訊號的時候,會以不確定的順序乙個接乙個的呼叫這些槽
2.多個訊號連線同乙個槽
connect(slider , signal(valuechanged(int)) , this , slot(updatestatusbarindicator(int)) );
connect(lcd , signal(valuechanged(int)) , this , slot(updatestatusbarindicator(int)) );
3.乙個訊號連線另外乙個訊號
connect(lineedit , signal(textchanged(const qstring& ) ) , this , signal(updaterecord(const qstring &)));
當發射第乙個訊號的時候,也會發射第二個訊號
4.訊號的移除
bool qobject::disconnect(const qobject * sender, const char * signal, const qobject * receiver, const char * method);
這種情況很少使用,就不做介紹了
Linux學習第五課
vim編輯器 vi編輯器的提公升版 1 使用簡單 2 使用範圍廣 ctrl shift 增大字型 ctrl 縮小字型 三種模式 esc a,i,o 參考記事本 2 命令模式 複製 剪下 貼上 esc 搜尋 3 末行模式 儲存 退出 設定編 輯器環境設定 w 儲存 q 退出 wq 儲存並退出 wq 強...
HTML學習第五課
定義列表的 也叫做描述性列表,定義列表預設為為兩個層次,第一層為列表項標籤 dt 第二層為注釋項標籤 dd dt 和 dd 標籤通常是成對使用的,也可以乙個列表項對應於幾個解釋項,其格式為 第1項 注釋1第二項 注釋2第三項 注釋3 table 標籤定義html 簡單的html 由table 元素以...
深入理解Qt訊號槽
訊號槽機制是觀察者模式的一種應用,達到訂閱 發布的效果。與之類似的有c 中的委託機制,只是寫法有所不同。訊號槽實現的主體是connect函式,常有兩種寫法 利用signal slot巨集和使用 類名 函式的結構 需要注意connect除了可以連線訊號和槽,還可以連線訊號與訊號 單個訊號與多個槽 多個...