我是Qt的初学者,正在努力理解SIGNAL
和SLOT
宏。在学习使用connect
方法绑定信号和槽时,我发现Qt官方参考页面上的教程使用:
connect(obj1, SIGNAL(signal(int)), obj2, SLOT(slot()))
然而,这个方法也非常有效:
connect(obj1, &Obj1::signal, obj2, &Obj2::slot)
所以,宏SIGNAL
和SLOT
具体是做什么的?它们只是在对象所属的类中查找信号并返回其地址吗?那么为什么大多数程序员使用这些宏,而不是使用
&Obj1::signal
,因为后者似乎更简单,并且如果信号函数的参数发生变化,您不需要更改代码?