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(指向成员函数的指针)。文章来源:https://www.toymoban.com/news/detail-511773.html
下方是Qt文章中整理的四个不同点。文章来源地址https://www.toymoban.com/news/detail-511773.html
区别 | Qt4(运行时) | Qt5(编译时) |
---|---|---|
检测支持隐式类型转换 | √ | |
信号可以连接Lambda表达式 | √ | |
槽函数的参数可以多于信号的参数(通过缺省参数) | √ | |
C++对象与QML对象的信号槽连接 | √ |
到了这里,关于1.1.4 Qt信号槽之再谈Qt4与Qt5中信号槽使用的差异的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!