




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第Qt信號自定義槽函數的實現目錄使用無參數信號與槽使用有參信號傳遞點擊按鈕觸發信號匿名函數與槽Qt中實現自定義信號與槽函數,信號用于發送并觸發槽函數,槽函數則是具體的功能實現,如下我們以老師學生為例子簡單學習一下信號與槽函數的使用方法。
使用無參數信號與槽
首先定義一個teacher類,該類中用于發送一個信號,其次student類,定義用于接收該信號的槽函數,最后在widget中使用emit觸發信號,當老師說下課時,學生請客吃飯。
teacher.h中只需要定義信號。定義一個voidhungry();信號。
#ifndefTEACHER_H
#defineTEACHER_H
#includeQObject
classTeacher:publicQObject
Q_OBJECT
public:
explicitTeacher(QObject*parent=nullptr);
signals:
//定義一個信號,信號必須為void類型,且信號不能實現
voidhungry();
#endif//TEACHER_H
student中需要定義槽聲明,并實現槽。
student.h
#ifndefSTUDENT_H
#defineSTUDENT_H
#includeQObject
classStudent:publicQObject
Q_OBJECT
public:
explicitStudent(QObject*parent=nullptr);
signals:
publicslots:
//自定義槽函數
//槽函數必須定義且必須要聲明才可以使用
voidtreat();
#endif//STUDENT_H
student.cpp
#include"student.h"
#includeQDebug
Student::Student(QObject*parent):QObject(parent)
//槽函數的實現過程如下
voidStudent::treat()
qDebug()"請老師吃飯";
}
Widget.h定義信號發送函數,與類
#ifndefWIDGET_H
#defineWIDGET_H
#includeQWidget
#include"student.h"
#include"teacher.h"
classWidget:publicQWidget
Q_OBJECT
public:
Widget(QWidget*parent=nullptr);
~Widget();
//定義學生與老師類
Teacher*zt;
Student*st;
//定義信號發送函數
voidclassIsOver();
#endif//WIDGET_H
Widget.cpp具體實現
#include"widget.h"
Widget::Widget(QWidget*parent):QWidget(parent)
zt=newTeacher(this);
st=newStudent(this);
//zt向st發送信號,信號是Teacher::hungry處理槽函數是Student::treat
connect(zt,Teacher::hungry,st,Student::treat);
classIsOver();
Widget::~Widget()
//觸發信號
voidWidget::classIsOver()
emitzt-hungry();
}
使用有參信號傳遞
只需要再無參基礎上改進
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()
//觸發信號
voidWidget::classIsOver()
emitzt-hungry("kao'leng'mian烤冷面");
}
student.cpp
#include"student.h"
#includeQ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青島科技大學《燃料及燃燒學》2023-2024學年第一學期期末試卷
- 電焊本考試試題及答案
- 大學生爾雅教育考試試題及答案
- 初中考試題及答案
- 2025屆菏澤單縣北城三中聯考七年級數學第一學期期末綜合測試試題含解析
- 2011英語高考試題及答案
- 江蘇商貿職業學院《鍛煉心理學》2023-2024學年第一學期期末試卷
- 8省聯考語文試題及答案
- 2025屆山東省金鄉市七年級數學第一學期期末統考模擬試題含解析
- 貴州文化旅游職業學院《免疫與病原生物學實驗Ⅲ》2023-2024學年第一學期期末試卷
- 裝飾設計公司利潤分析報告
- 國際貿易咨詢服務合作協議
- 新生兒吸入性肺炎的觀察與護理
- 醫院布草洗滌服務方案(技術方案)
- 嬰幼兒輔食添加課件
- 單片機課程設計之超聲波測距-電子工程系單片機課程設計報告
- 寧騷公共政策學
- 地下室頂板行車與堆載驗算與加固方案
- GB/T 37234-2018文件鑒定通用規范
- 高中英語讀后續寫教學策略的探究
- 2022年動畫制作行業分析及未來五至十年行業發展報告
評論
0/150
提交評論