connect(newparamWidget, &MyParamWidget::changeRangeMode, this, &AnalyzeBusiness::rangeModeChanged); connect(newparamWidget, SIGNAL(changeRangeMode()), this, SLOT(rangeModeChanged()));这两种写法的区别在哪里?哪一种更好
时间: 2024-03-29 19:34:59 浏览: 47
这两种写法都是用于连接信号和槽的语法,但是它们的区别在于:
1. 第一种是使用了 Qt5 的新语法,而第二种是使用了旧的语法。
2. 在第一种写法中,使用了 C++11 的 lambda 表达式来连接信号和槽,可以更直观地表达连接的关系,并且可以不用定义槽函数。
3. 在第二种写法中,使用了 SIGNAL 和 SLOT 宏来连接信号和槽,需要在头文件中使用 Q_OBJECT 宏声明,且必须使用槽函数的完整签名。
总体来说,第一种写法更加简洁、直观,而且不需要定义槽函数,但是需要使用 C++11 的特性;第二种写法则比较繁琐,但是可以兼容旧版 Qt。因此,如果您的项目中已经使用了 C++11,并且不需要兼容旧版 Qt,建议使用第一种写法。
阅读全文