日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt学习之路(4):初探信号槽

發布時間:2023/12/2 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt学习之路(4):初探信号槽 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
看過了簡單的Hello, world! 之后,下面來看看Qt最引以為豪的信號槽機制! 所謂信號槽,簡單來說,就像是插銷一樣:一個插頭和一個插座。怎么說呢?當某種事件發生之后,比如,點擊了一下鼠標,或者按了某個按鍵,這時, 這個組件就會發出一個信號。就像是廣播一樣,如果有了事件,它就漫天發聲。這時,如果有一個槽,正好對應上這個信號,那么,這個槽的函數就會執行,也就是 回調。就像廣播發出了,如果你感興趣,那么你就會對這個廣播有反應。干巴巴的解釋很無力,還是看代碼: #include <QtGui/QApplication>
#include <QtGui/QPushButton>

int main(int argc, char *argv[])
{
????????QApplication a(argc, argv);
????????QPushButton *button = new QPushButton("Quit");
????????QObject::connect(button, SIGNAL(clicked()), &a, SLOT(quit()));
????????button->show();
????????return a.exec();
} 這是在Qt Creator上面新建的文件,因為前面已經詳細的說明怎么新建工程,所以這里就不再贅述了。這個程序很簡單,只有一個按鈕,點擊之后程序退出。(順便說 一句,Qt里面的button被叫做QPushButton,真搞不明白為什么一個簡單的button非得加上push呢?呵呵) 主要是看這一句: QObject::connect(button, SIGNAL(clicked()), &a, SLOT(quit())); QObject是所有類的根。Qt使用這個QObject實現了一個單根繼承的C++。它里面有一個connect靜態函數,用于連接信號槽。 當一個按鈕被點擊時,它會發出一個clicked信號,意思是,向周圍的組件們聲明:我被點擊啦!當然,其它很多組件都懶得理他。如果對它感興 趣,就告訴QObject說,你幫我盯著點,只要button發出clicked信號,你就告訴我——想了想之后,說,算了,你也別告訴我了,直接去執行 我的某某某函數吧!就這樣,一個信號槽就形成了。具體來說呢,這個例子就是QApplication的實例a說,如果button發出了clicked信 號,你就去執行我的quit函數。所以,當我們點擊button的時候,a的quit函數被調用,程序退出了。所以,在這里,clicked()就是一個 信號,而quit()就是槽,形象地說就是把這個信號插進這個槽里面去。 Qt使用信號槽機制完成了事件監聽操作。這類似與Swing里面的listener機制,只是要比這個listener簡單得多。以后我們會看 到,這種信號槽的定義也異常的簡單。值得注意的是,這個信號槽機制僅僅是使用的QObject的connect函數,其他并沒有什么耦合——也就是說,完 全可以利用這種機制實現你自己的信號監聽!不過,這就需要使用qmake預處理一下了! 細心的你或許發現,在Qt Creator里面,SIGNAL和SLOT竟然變顏色了!沒錯,Qt確實把它們當成了關鍵字!實際上,Qt正是利用它們擴展了C++語言,因此才需要使 用qmake進行預處理,比便使普通的C++編譯器能夠順利編譯。另外,這里的signal和Unix系統里面的signal沒有任何的關系!哦哦,有一 點關系,那就是名字是一樣的! 信號槽機制是Qt關鍵部分之一,以后我們還會再仔細的探討這個問題的。

本文出自 “豆子空間” 博客,請務必保留此出處http://devbean.blog.51cto.com/448512/194442

轉載于:https://www.cnblogs.com/hnrainll/archive/2011/05/23/2054356.html

總結

以上是生活随笔為你收集整理的Qt学习之路(4):初探信号槽的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。