1.1.4 Qt信号槽之再谈Qt4与Qt5中信号槽使用的差异

Qt信号槽之再谈Qt4与Qt5中信号槽使用的差异

Differences between String-Based and Functor-Based Connections

通过上面的示例和分析,我们已经明显感受到Qt4和Qt5中connect的不同之处,但是Qt文档中有一篇文章专门叙述了Qt4和Qt5中connect的差异,这里根据此篇文章带着大家再深入了解拓展一下。

从Qt5开始,Qt提供了两种不同方法的信号槽连接方式,一种是基于字符型,一种是基于函数式,其实也就是我们上方提到的Qt4和Qt5的不同写法,Qt4中connect的信号和槽函数的参数类型为 const char*,而Qt5中connect的信号和槽函数的参数类型为PointerToMemberFunction(指向成员函数的指针)。

下方是Qt文章中整理的四个不同点。

区别 Qt4(运行时) Qt5(编译时)
检测支持隐式类型转换
信号可以连接Lambda表达式
槽函数的参数可以多于信号的参数(通过缺省参数)
C++对象与QML对象的信号槽连接

你可能感兴趣的:(Qt基础内容教程,qt,connect,信号槽,SIGNAL,SLOT)