




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第Qt信號自定義槽函數(shù)的實(shí)現(xiàn)目錄使用無參數(shù)信號與槽使用有參信號傳遞點(diǎn)擊按鈕觸發(fā)信號匿名函數(shù)與槽Qt中實(shí)現(xiàn)自定義信號與槽函數(shù),信號用于發(fā)送并觸發(fā)槽函數(shù),槽函數(shù)則是具體的功能實(shí)現(xiàn),如下我們以老師學(xué)生為例子簡單學(xué)習(xí)一下信號與槽函數(shù)的使用方法。
使用無參數(shù)信號與槽
首先定義一個teacher類,該類中用于發(fā)送一個信號,其次student類,定義用于接收該信號的槽函數(shù),最后在widget中使用emit觸發(fā)信號,當(dāng)老師說下課時,學(xué)生請客吃飯。
teacher.h中只需要定義信號。定義一個voidhungry();信號。
#ifndefTEACHER_H
#defineTEACHER_H
#includeQObject
classTeacher:publicQObject
Q_OBJECT
public:
explicitTeacher(QObject*parent=nullptr);
signals:
//定義一個信號,信號必須為void類型,且信號不能實(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()"請老師吃飯";
}
Widget.h定義信號發(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;
//定義信號發(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ā)送信號,信號是Teacher::hungry處理槽函數(shù)是Student::treat
connect(zt,Teacher::hungry,st,Student::treat);
classIsOver();
Widget::~Widget()
//觸發(fā)信號
voidWidget::classIsOver()
emitzt-hungry();
}
使用有參信號傳遞
只需要再無參基礎(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ā)信號
voidWidget::classIsOver()
emitzt-hungry("kao'leng'mian烤冷面");
}
student.cpp
#include"student.h"
#includeQ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工業(yè)大數(shù)據(jù)行業(yè)當(dāng)前發(fā)展現(xiàn)狀及增長策略研究報告
- 2025年保健器材行業(yè)當(dāng)前發(fā)展現(xiàn)狀及增長策略研究報告
- 中醫(yī)藥國際化進(jìn)程中的2025年市場拓展與中醫(yī)藥產(chǎn)業(yè)國際化人才培養(yǎng)研究報告
- 2025年制冰機(jī)行業(yè)當(dāng)前發(fā)展現(xiàn)狀及增長策略研究報告
- 2025年垃圾處理行業(yè)當(dāng)前發(fā)展現(xiàn)狀及增長策略研究報告
- 2025年磷化工行業(yè)當(dāng)前競爭格局與未來發(fā)展趨勢分析報告
- 2025年塑料制品行業(yè)當(dāng)前競爭格局與未來發(fā)展趨勢分析報告
- 2025年減震器制造行業(yè)當(dāng)前競爭格局與未來發(fā)展趨勢分析報告
- 嬰幼兒尿布性皮炎護(hù)理指南
- 《職業(yè)發(fā)展與就業(yè)指導(dǎo)》課件第3章
- 13J104蒸壓加氣混凝土砌塊板材構(gòu)造
- 基本藥物臨床應(yīng)用管理制度
- 腫瘤惡液質(zhì)營養(yǎng)治療指南
- 美術(shù)實(shí)訓(xùn)室功能設(shè)計(jì)方案
- 護(hù)理優(yōu)勢專科匯報
- 銀行職工反詐工作總結(jié)
- 盆底功能障礙問卷(PFDI20)
- 設(shè)備安裝管理培訓(xùn)課件
- 老年人轉(zhuǎn)運(yùn)照護(hù)-輪椅運(yùn)轉(zhuǎn)
- 國家電網(wǎng)公司供電企業(yè)勞動定員標(biāo)準(zhǔn)
- 7-聊城東制梁場80t龍門吊安拆安全專項(xiàng)方案-八局一-新建鄭州至濟(jì)南鐵路(山東段)工程ZJTLSG-2標(biāo)段
評論
0/150
提交評論