Qt4的信号与槽关联方式:
- 优点:使用
SIGNAL
和SLOT
宏,语法简洁,参数直观、易于理解和使用。 - 缺点:
- 缺乏编译时类型检查,所有的检查都是在运行时完成的,这可能导致编译通过但运行时出错。
- 字符串形式的信号和槽名称出现错误难以发现,因为不进行错误检查。
Qt5的信号与槽关联方式:
- 优点:
- 引入了新的
connect
语法,使用函数指针直接进行连接,从而在编译时进行类型检查,减少了潜在的运行时错误。 - 支持Lambda表达式和
std::function
,提供了更高的灵活性。 - 允许使用任意的成员函数、普通全局函数和静态函数作为槽,不再局限于使用
slots
关键字声明的函数。 - 支持参数的自动类型转换,增强了使用的灵活性。
- 引入了新的
- 缺点:
- 语法变化大,需要适应新的连接方式。没有Qt4直观
实际开发中,关联信号和参函数时候,槽函数要用使用slots
关键字声明的函数。使用普通函数不易于团队开发理解