【发布时间】:2019-12-02 06:16:51
【问题描述】:
我是 Qt 的初学者,并试图理解 SIGNAL 和 SLOT 宏。在学习使用connect方法绑定信号和槽的时候,发现Qt官方参考页上的教程使用:
connect(obj1, SIGNAL(signal(int)), obj2, SLOT(slot()))
不过,这也很有效:
connect(obj1, &Obj1::signal, obj2, &Obj2::slot)
那么宏 SIGNAL 和 SLOT 究竟是做什么的?他们只是在对象所属的类中查找信号并返回它的地址吗?
那为什么大多数程序员都使用这些宏而不是使用&Obj1::signal,因为后者看起来更简单,如果信号函数的参数发生变化,您不需要更改代码?
【问题讨论】: