2020-11-23 信號與槽細節(jié)及思想

問題:貓和老鼠問題刁绒,貓一叫,老鼠要逃跑

提出了一種對象間的通信機制坊罢,這種機制续担,要能夠給兩個對象間的函數(shù)建立映射關(guān)系。前者被調(diào)用時候活孩,后者能夠自動調(diào)用物遇。


1:回調(diào)函數(shù)+映射表

std::map<std::string,std::function<void()>> callback;

建立映射關(guān)系和調(diào)用功能? 封裝一個connection類? 這個類需要存在于上下文環(huán)境中,可以這樣寫憾儒。


2:觀察者模式 =發(fā)布訂閱模式

引出了信號與槽的機制

3: MOC工具 OOBject宏 展開后是發(fā)現(xiàn)里面聲明了一個只讀的靜態(tài)成員變量staticMetaObject以及三個public成員函數(shù)询兴。 聲明的這些函數(shù)在moc.cpp里面進行了實現(xiàn)。稱為定義起趾。

staticmetaobject是一個結(jié)構(gòu)體诗舰。成員字符串存儲了該對象的信號與槽等元信息。然后截取出來训裆; 存放的時候以數(shù)組形式存放的眶根。

connection成員對象?

映射 反射? 傳入字符串 返回實例。

在 信號miao函數(shù)里面 將直接調(diào)用QMetaObject::activte边琉。去找出當前信號連接的所有的對象-槽函數(shù)属百。

常用元類型已經(jīng)注冊了,自定以的需要進行一個注冊变姨;qregisterMetaType();

x新版本的connect使用了取成員函數(shù)指針的方法族扰,少去了字符串查找過程。


connect過程: 1:參數(shù)校驗判空 2:拿到發(fā)送者元對象3:獲取當前這個對象的信號索引 校驗定欧,3:拿到接收者對象渔呵,并獲取到當前對象的槽索引,4:綁定 connection 被創(chuàng)建了砍鸠,插入到一個隊列了 雙向鏈表+數(shù)組存儲

connectionlists 屬于每個對象扩氢,是一個數(shù)組,按照信號索引

進行存儲睦番;找出當前對象信號連接的所有對象-槽函數(shù)类茂,再逐個處理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耍属,一起剝皮案震驚了整個濱河市托嚣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厚骗,老刑警劉巖示启,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異领舰,居然都是意外死亡夫嗓,警方通過查閱死者的電腦和手機迟螺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舍咖,“玉大人矩父,你說我怎么就攤上這事∨琶梗” “怎么了窍株?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長攻柠。 經(jīng)常有香客問我球订,道長,這世上最難降的妖魔是什么瑰钮? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任冒滩,我火速辦了婚禮,結(jié)果婚禮上浪谴,老公的妹妹穿的比我還像新娘开睡。我一直安慰自己,他們只是感情好较店,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布士八。 她就那樣靜靜地躺著,像睡著了一般梁呈。 火紅的嫁衣襯著肌膚如雪婚度。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天官卡,我揣著相機與錄音蝗茁,去河邊找鬼。 笑死寻咒,一個胖子當著我的面吹牛哮翘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播毛秘,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼饭寺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了叫挟?” 一聲冷哼從身側(cè)響起艰匙,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抹恳,沒想到半個月后员凝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡奋献,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年健霹,在試婚紗的時候發(fā)現(xiàn)自己被綠了旺上。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡糖埋,死狀恐怖宣吱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瞳别,我是刑警寧澤凌节,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站洒试,受9級特大地震影響倍奢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜垒棋,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一卒煞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叼架,春花似錦畔裕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乍构,卻和暖如春甜无,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哥遮。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工岂丘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人眠饮。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓奥帘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親仪召。 傳聞我的和親對象是個殘疾皇子寨蹋,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 本文使用Qt 5.12.6 + MinGW7.3.0.64+win10環(huán)境+qtbase源碼 我們來看一下以下幾個...
    zypper閱讀 2,798評論 0 1
  • 一、問題 學習Qt有一段時間了扔茅,信號槽用的也是666已旧,可是對信號槽的機制還是一知半解,總覺著不是那么得勁兒咖摹,萬一哪...
    行走的代碼閱讀 1,107評論 0 5
  • 寫在前面 在界面搭建時评姨,我們需要很多觸發(fā)事件难述。比如萤晴,鼠標右擊吐句,我們希望彈出對話框;點擊退出的按鈕店读,界面就會關(guān)閉或者...
    鍋蓋666閱讀 582評論 0 0
  • 引自:https://blog.51cto.com/9291927/2070398 Qt高級——Qt信號槽機制源碼...
    Magic11閱讀 3,955評論 1 12
  • 一個簡單的例子 Sender Sloter Connection 那么Qt是怎么將這兩個信號槽鏈接起來的呢嗦枢?接下來...
    還少一雙小腳丫閱讀 843評論 0 0