




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Qt信號(hào)自定義槽函數(shù)的實(shí)現(xiàn)目錄使用無(wú)參數(shù)信號(hào)與槽使用有參信號(hào)傳遞點(diǎn)擊按鈕觸發(fā)信號(hào)匿名函數(shù)與槽Qt中實(shí)現(xiàn)自定義信號(hào)與槽函數(shù),信號(hào)用于發(fā)送并觸發(fā)槽函數(shù),槽函數(shù)則是具體的功能實(shí)現(xiàn),如下我們以老師學(xué)生為例子簡(jiǎn)單學(xué)習(xí)一下信號(hào)與槽函數(shù)的使用方法。
使用無(wú)參數(shù)信號(hào)與槽
首先定義一個(gè)teacher類,該類中用于發(fā)送一個(gè)信號(hào),其次student類,定義用于接收該信號(hào)的槽函數(shù),最后在widget中使用emit觸發(fā)信號(hào),當(dāng)老師說(shuō)下課時(shí),學(xué)生請(qǐng)客吃飯。
teacher.h中只需要定義信號(hào)。定義一個(gè)voidhungry();信號(hào)。
#ifndefTEACHER_H
#defineTEACHER_H
#includeQObject
classTeacher:publicQObject
Q_OBJECT
public:
explicitTeacher(QObject*parent=nullptr);
signals:
//定義一個(gè)信號(hào),信號(hào)必須為void類型,且信號(hào)不能實(shí)現(xiàn)
voidhungry();
#endif//TEACHER_H
student中需要定義槽聲明,并實(shí)現(xiàn)槽。
student.h
#ifndefSTUDENT_H
#defineSTUDENT_H
#includeQObject
classStudent:publicQObject
Q_OBJECT
public:
explicitStudent(QObject*parent=nullptr);
signals:
publicslots:
//自定義槽函數(shù)
//槽函數(shù)必須定義且必須要聲明才可以使用
voidtreat();
#endif//STUDENT_H
student.cpp
#include"student.h"
#includeQDebug
Student::Student(QObject*parent):QObject(parent)
//槽函數(shù)的實(shí)現(xiàn)過程如下
voidStudent::treat()
qDebug()"請(qǐng)老師吃飯";
}
Widget.h定義信號(hào)發(fā)送函數(shù),與類
#ifndefWIDGET_H
#defineWIDGET_H
#includeQWidget
#include"student.h"
#include"teacher.h"
classWidget:publicQWidget
Q_OBJECT
public:
Widget(QWidget*parent=nullptr);
~Widget();
//定義學(xué)生與老師類
Teacher*zt;
Student*st;
//定義信號(hào)發(fā)送函數(shù)
voidclassIsOver();
#endif//WIDGET_H
Widget.cpp具體實(shí)現(xiàn)
#include"widget.h"
Widget::Widget(QWidget*parent):QWidget(parent)
zt=newTeacher(this);
st=newStudent(this);
//zt向st發(fā)送信號(hào),信號(hào)是Teacher::hungry處理槽函數(shù)是Student::treat
connect(zt,Teacher::hungry,st,Student::treat);
classIsOver();
Widget::~Widget()
//觸發(fā)信號(hào)
voidWidget::classIsOver()
emitzt-hungry();
}
使用有參信號(hào)傳遞
只需要再無(wú)參基礎(chǔ)上改進(jìn)
widget.cpp
#include"widget.h"
Widget::Widget(QWidget*parent):QWidget(parent)
zt=newTeacher(this);
st=newStudent(this);
void(Teacher::*teacherPtr)(QString)=Teacher::hungry;
void(Student::*studentPtr)(QString)=Student::treat;
connect(zt,teacherPtr,st,studentPtr);
classIsOver();
Widget::~Widget()
//觸發(fā)信號(hào)
voidWidget::classIsOver()
emitzt-hungry("kao'leng'mian烤冷面");
}
student.cpp
#include"student.h"
#includeQ
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藍(lán)山教師考編試題及答案
- 合同特約協(xié)議書
- 手繪合同協(xié)議書
- 過戶移交協(xié)議書范本
- 2025年電商平臺(tái)知識(shí)產(chǎn)權(quán)保護(hù)與知識(shí)產(chǎn)權(quán)金融創(chuàng)新報(bào)告
- 車庫(kù)無(wú)償出租合同協(xié)議
- 汽車陪練合同協(xié)議書范本
- 工人安全合同協(xié)議書
- 鄰居調(diào)解協(xié)議書范本
- 轉(zhuǎn)讓場(chǎng)地及裝修合同協(xié)議
- 裝配式混凝土結(jié)構(gòu)的構(gòu)件安裝分項(xiàng)工程(驗(yàn)收批)質(zhì)量驗(yàn)收記錄表
- 2021年中原工學(xué)院輔導(dǎo)員招聘筆試試題及答案解析
- 作業(yè)許可檢查表
- 城市雕塑藝術(shù)工程工程量計(jì)價(jià)清單定額2022年版
- 湘美版美術(shù)三年級(jí)下冊(cè) 《漁家樂-蟳埔情》課件(共20張PPT)
- 農(nóng)產(chǎn)品集中交易市場(chǎng)等級(jí)技術(shù)規(guī)范-編制說(shuō)明
- 張京16分鐘中英文對(duì)照翻譯稿
- 武漢綠地中心項(xiàng)目技術(shù)管理策劃書(48頁(yè))
- 油田相關(guān)業(yè)務(wù)的稅制及稅率
- 北師大版物理八年級(jí)下冊(cè)課課練:專題訓(xùn)練 透鏡的相關(guān)作圖(含答案)
- 《國(guó)際經(jīng)濟(jì)法》案例思考題
評(píng)論
0/150
提交評(píng)論