QT-信号和槽

信号和槽

信号和槽的解析图

 信号和槽:

   连接函数:connect

   参数:

        参数1:信号的发送者

        参数2:发送的信号(函数的地址)

        参数3:信号的接受者(窗口)

        参数4:处理的槽函数

   松散耦合

   实现点击我的按钮,关闭窗口

connect(myBtn, &QPushButton::clicked,this,&QWidget::close);

去帮助文档找一下signal 看怎么用

 

 看一下槽怎么用

 mywidget.cpp

 // 需求 点击我的按钮 关闭窗口
    // 参数1 信号的发送者  参数2 发送的信号(函数的地址) 参数3 信号的接受者(窗口) 参数4 处理的槽函数
    connect(myBtn, &QPushButton::clicked,this,&QWidget::close);
    // connect(myBtn, &MyPushButton::clicked,this,&myWidget::close);和上一行一样的意思,可以用父类也可以用子类

自定义的信号和槽

案例  :下课后 老师会触发一个信号--饿了 学生响应信号 请客吃饭

创建一个新的项目02SingalandSlot

创建两个class--Teacher和Student

teacher.h 

1、声明老师类
#ifndef TEACHER_H
#define TEACHER_H

#include <QObject>

class Teacher : public QObject
{
    Q_OBJECT
public:
    explicit Teacher(QObject *parent = nullptr);

signals:  //自定义信号  写到signals
          //返回值是void 只需要声明 不需要实现
          // 可以有参数,可以重载
    void hungry();

};

#endif // TEACHER_H

student.h

2、声明学生类  .cpp文件中去实现
#ifndef STUDENT_H
#define STUDENT_H

#include <QObject>

class Student : public QObject
{
    Q_OBJECT
public:
    explicit Student(QObject *parent = nullptr);
    //返回值 void 需要声明 也需要实现(.cpp文件中写实现)
    //可以有参数  可以发生重载
    void treat();

signals:

};

#endif // STUDENT_H

student.cpp

#include "student.h"
#include <QDebug>
Student::Student(QObject *parent) : QObject(paren
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值