qtday02-qt信號和槽day02機制_第1頁
qtday02-qt信號和槽day02機制_第2頁
qtday02-qt信號和槽day02機制_第3頁
qtday02-qt信號和槽day02機制_第4頁
qtday02-qt信號和槽day02機制_第5頁
免費預覽已結(jié)束,剩余18頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、QT特訓班第二講:信號槽機制2018主講老師:櫻桃老師 CONTENTS信號槽機制概念overview01信號和槽定義history02信號和槽的連接install03信號和槽連接語法要求correlative microscopy0405信號和槽函數(shù)的使用 第一部分信號槽機制概念2018信號槽機制概念 overview信號和槽是QT自行定義的通信機制,實現(xiàn)不同對象之間的數(shù)據(jù)交互。信號和槽機制是 QT 的核心機制,要精通 QT 編程就必須對信號和槽有所了解。信號和槽是一種高級接口,應用于對象之間的通信,它是 QT 的核心特性,也是 QT 區(qū)別于其它工具包的重要地方。信號槽機制概念overvie

2、w信號當用戶或系統(tǒng)觸發(fā)了一個動作,導致某個窗口部件的狀態(tài)發(fā)生了改變,該部件就會發(fā)射一個信號,即調(diào)用其類中一個特定的成員函數(shù),同時還可能攜帶有必要的參數(shù)槽槽幾乎就是一個普通的類成員函數(shù)-可以是公有的、保護的或私有的,可以被重載,也可以被覆蓋,其參數(shù)可以是任意類型,并可以在其它函數(shù)中被調(diào)用第二部分信號和槽定義2018創(chuàng)建信號Create Signals那么,我們?nèi)绾蝿?chuàng)建一個信號呢?使用emit發(fā)送信號:signals:向類定義中加入信號的原型:使用發(fā)送語句來調(diào)用所有監(jiān)聽這個信號的方法。這一步使用的語法和用來調(diào)用一個局部方法的語法是一樣的,只不過這時用emit關鍵字開頭:QString name;e

3、mit newName(name);void newName(QString &name);在類定義的第一行加入Q_OBJECT宏創(chuàng)建槽函數(shù) Create Slot Function那么,我們?nèi)绾蝿?chuàng)建一個槽函數(shù)呢?public slots:向類定義中加入槽函數(shù)的原型與信號一樣,槽需要在類定義的上部加入Q_OBJECT宏:包含定義了將要發(fā)送信號的類的頭文件。void nameChanged(QString &name);第三部分信號和槽的連接2018信號和槽的連接概念把槽和信號連接起來。這個工作通常在構(gòu)造函數(shù)中完成,但是如果這個對象構(gòu)造得比較晚,那么連接工作也可以晚點做。調(diào)用connect()方

4、法把你的槽加入到方法列表中,每當指定的信號發(fā)出的時候,這個方法就會被調(diào)用。信號和槽的連接必須是Qobject的或者Qobject(Qwidget)的子類派生類才能有信號和槽.通過調(diào)用 QObject 對象的 connect 函數(shù)來將某個對象的信號與另外一個對象的槽函數(shù)相關聯(lián),這樣當發(fā)射者發(fā)射信號時,接收者的槽函數(shù)將被調(diào)用調(diào)用connect()方法可以按照以下的方式調(diào)用connect()方法:connect(const QObject * sender, /信號發(fā)送對象 const char * signal, /信號函數(shù)簽名 const QObject * receiver, /信號接收對象

5、const char * method);/槽函數(shù)簽名其中信號函數(shù)和槽函數(shù)的簽名需要借助兩個預定義宏SIGNAL() -將信號函數(shù)簽名表示成字符串SLOT() -將槽函數(shù)的簽名表示成字符串信號和槽注意事項信號和槽是qt的最重要的機制,可以把不相干的對象綁定 如果需要使用信號和槽機制,必須聲明 Q_OBJECT 定義信號 signals:定義槽:public slots:信號和槽注意事項取消關聯(lián):disconnect斷開與某個對象相關聯(lián)的任何對象。這似乎有點不可理解,事實上,當我們在某個對象中定義了一個或者多個信號,這些信號與另外若干個對象中的槽相關聯(lián),如果我們要切斷這些關聯(lián)的話,就可以利用這個

6、方法,非常之簡潔第四部分信號和槽連接語法要求2018PPT模板下載: 行業(yè)PPT模板: 節(jié)日PPT模板: PPT素材下載: PPT背景圖片: PPT圖表下載: 優(yōu)秀PPT下載: PPT教程: Word教程: Excel教程: 資料下載: PPT課件下載: 范文下載: 試卷下載: 教案下載: 字體下載: 信號和槽連接語法要求Syntax requirements語法要求一個信號可以被連接到多個槽函數(shù)(1對多)多個信號可以被連接到同一個槽函數(shù)(多對1)兩個信號可以直接連接(信號級聯(lián))PPT模板下載: 行業(yè)PPT模板: 節(jié)日PPT模板: PPT素材下載: PPT背景圖片: PPT圖表下載: 優(yōu)秀PP

7、T下載: PPT教程: Word教程: Excel教程: 資料下載: PPT課件下載: 范文下載: 試卷下載: 教案下載: 字體下載: 信號和槽連接語法要求Syntax requirements語法要求信號和槽參數(shù)要一致可以帶有缺省參數(shù)信號函數(shù)的參數(shù)可以比槽函數(shù)多,多余的將被忽略信號和槽機制的優(yōu)點merit 類型安全type safety松散耦合 loose coupling第五部分信號和槽函數(shù)的使用 2018信號和槽函數(shù)的使用use必須小心不要創(chuàng)建死循環(huán)。 還需要小心槽和信號方法在連接語句中的參數(shù)是否匹配。信號與槽機制的效率workpiece ratio效率需要定位接收信息的對象安全地遍歷所有的關聯(lián)編組(marshal)/解組(unmarshal)傳遞的參數(shù)多線程的時候,信號可能需要排隊等待QT5元對象系統(tǒng)meta object system010203基類QObject任何

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論