




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 价格保密协议合同范例
- 360劳务合同标准文本
- 产品长期合作合同范例
- 儿童探视教育辅导与保障合同书
- 地铁工程合同纠纷仲裁调解协议
- 博士科研岗位劳务合同及成果转化协议
- 抖音账号粉丝数据迁移及权益维护合同
- 企业合规培训及常年法律顾问服务合同
- 个性化智能零售库存管理系统定制开发服务合同
- 涉外医疗投资融资合同
- LY/T 2676-2016半干旱地区灌木林平茬与复壮技术规范
- 装配式混凝土结构的构件安装分项工程(验收批)质量验收记录表
- 2021年中原工学院辅导员招聘笔试试题及答案解析
- 作业许可检查表
- 湘美版美术三年级下册 《渔家乐-蟳埔情》课件(共20张PPT)
- 农产品集中交易市场等级技术规范-编制说明
- 张京16分钟中英文对照翻译稿
- 武汉绿地中心项目技术管理策划书(48页)
- 油田相关业务的税制及税率
- 北师大版物理八年级下册课课练:专题训练 透镜的相关作图(含答案)
- 《国际经济法》案例思考题
评论
0/150
提交评论