美文网首页
重载信号函数,解决参数问题

重载信号函数,解决参数问题

作者: MisakaMikotoSAM | 来源:发表于2016-04-09 16:09 被阅读412次

在QT中,我们的信号函数与槽函数是需要参数匹配的,只有参数匹配了,moc才能将这两个函数联系起来,否则编译器将无法分辨该调用哪个函数。

那么如果出现了,一个信号函数拥有两种不同的参数,我们的槽函数需要如何申明呢?
在QT4中,我们的连接使用的是两个不同定义的宏,这样我们可以显式的给出我们需要的参数类型,但是在QT5中,我们一般不使用宏定义,我们对一个连接的声明如下:

QObject::connect(*sender,&signal,*receiver,&slot);

可以明显看到,我们无法在声明中显示的给出我们需要的参数类型,那么接下来为了解决不同参数的重载问题,我们需要的是显式的创立一个信号函数的指针,下面直接给出例子,例如我需要处理QComBox中的currentIndexChaned信号,这个信号有两种参数,一是QString,另一个是int,我们需要使用的int这个信号函数:

void (QComboBox::*fun)(int) = &QComboBox::currentIndexChanged;
QObject::connect(comboBox,fun,*receiver,&slot);

这样,我们传递给槽函数的信号就是int型的了,也就解决了重载信号函数的问题。

相关文章

  • 重载信号函数,解决参数问题

    在QT中,我们的信号函数与槽函数是需要参数匹配的,只有参数匹配了,moc才能将这两个函数联系起来,否则编译器将无法...

  • C++ - 函数重载

    函数重载:一个或者多个函数,名字相同,然而参数个数或者参数类型不相同,这叫做函数的重载。 举例: 函数重载使得函数...

  • TypeScript05(函数扩展)

    函数的类型 函数的可选参数? 函数参数的默认值 接口定义函数 定义剩余参数 函数重载重载是方法名字相同,而参数不同...

  • Swift-重写与重载的使用和比较

    1.重载: 函数名相同,参数名;参数类型;参数个数不同 重载函数并不仅仅局限于构造函数 函数重载是面相对象程序设计...

  • 27.Python中重载

    函数重载主要是为了解决两个问题。 可变参数类型。 可变参数个数。 另外,一个基本的设计原则是,仅仅当两个函数除了参...

  • C++基础语法-重载、extern

    函数重载 今天我们来深入学习下C++的基础语法函数重载。函数重载定义:只要函数名相同,参数个数不同,参数类型不同,...

  • TS中几种函数重载

    函数重载 函数重载,先要了解什么是函数签名:函数签名 = 函数名称+函数参数+函数参数类型+返回值类型四者合成,包...

  • TypeScript函数

    可选参数(y?) 默认参数 剩余参数 函数重载

  • C++学习笔记

    重载函数 定义:函数名相同,参数个数、参数类型、参数顺序不同的多个函数我们称为函数重载 构成条件: 返回值不同不构...

  • [进阶]C++:函数重载

    定义重载函数 重载函数是函数名相同但是参数列表不同的函数 重载和const形参 const_cast 在重载函数中...

网友评论

      本文标题:重载信号函数,解决参数问题

      本文链接:https://www.haomeiwen.com/subject/vicblttx.html