我是Qt的初学者,试图了解SIGNALand SLOT宏。当我学习使用该connect方法绑定信号和插槽时,我发现Qt官方参考页上的教程使用:
connect(obj1, SIGNAL(signal(int)), obj2, SLOT(slot()))
Run Code Online (Sandbox Code Playgroud)
但是,这也很好用:
connect(obj1, &Obj1::signal, obj2, &Obj2::slot)
Run Code Online (Sandbox Code Playgroud)
那么究竟是什么做的宏SIGNAL和SLOT办?它们是否只是在对象所属的类中寻找信号并返回其地址?
那么,为什么大多数程序员为什么不使用这些宏而不是使用它们,&Obj1::signal因为后者看起来更简单,并且如果信号函数的参数发生变化,则无需更改代码?