Qt中回调函数的实现

Qt中回调函数的实现


一、关于回调函数的介绍

这个关于回调函数的介绍可以查看知乎上关于回调函数的介绍通俗易懂
回调函数(callback)是什么.
上面的回答让我理解回调函数的还是[A 让 B 排序,B 会做排序,但排序需要知道哪个比哪个大,这点 B 自己不知道,就需要 A 告诉它。而判断大小本身是某种行为,既然 C 语言中不可以传进第一值的函数,就设计成传递第二值的函数指针,这个函数指针是 A 传向 B 的信息,用于描述判断大小这种行为。这里本来 A 调用 B 的,结果 B 又调用了 A 告诉它的信息,也就是 callback。]这句话,下面链接是关于全部的回答,具体可以点击链接查看
链接

二、回调函数使用的实列

1.调用回调函数的类

代码如下(示例):

//类的声明
#include <QMainWindow>
#include <QWidget>
typedef int(*lpFunc)(int,int);  // 函数指针
class CallbackA : public QWidget
{
    Q_OBJECT
public:
    explicit CallbackA(QWidget *parent = nullptr);


     void h_getstaic(lpFunc);       //调用回调函数
};


//类的实现
#include <QDebug>
CallbackA::CallbackA(QWidget *parent) : QWidget(parent)
{

}

void CallbackA::h_getstaic(lpFunc a_lpFunc)
{
    int i =a_lpFunc(5,6);
    qDebug()<<"回调函数返回的数值"<<i;
}

2.回调函数实现

代码如下(示例):

//类的声明
#include "callbacka.h"
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    CallbackA m_CallbackA;  //调用回调函数的类

    // 声明一个回调函数
    static int s_getPosition( int ,int);
};


//类的实现
#include <QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
  
    m_CallbackA.h_getstaic(&s_getPosition);
}

Widget::~Widget()
{
}

int Widget::s_getPosition(int a, int b)
{
    qDebug()<<"回调函数触发传入的数值是:"<<a<<b;
    return  a+b;
}

运行程序回看到程序打印的信息:
回调函数触发传入的数值是: 5 6
回调函数返回的数值 11


总结

这个关于回调函数的实列已经结束了,以上仅对自己学习回调函数做一个记录,如有错误之处,望大佬不吝赐教。


障碍与失败,是通往成功最稳靠的踏脚石,肯研究利用它们,便能从失败中培养出成功。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值