Qt发射槽代替信号

Qt发射槽代替信号,qt,signals-slots,Qt,Signals Slots,假设我有一个QPushButton小部件,它通过其clicked()信号连接到插槽。第一个插槽依次通过emit关键字调用另一个插槽。第二个插槽从第一个插槽中获取一个参数并对其进行处理。这是可行的,但从我对信号槽模式的理解来看,只有发出信号才有意义。发射插槽而不是信号是错误的吗?是。插槽是一个函数。你可以简单地调用一个插槽,就像C++中的任何其他函数一样。代码>。只有信号应该跟在emit关键字后面。如果查看emit的定义,可以看到它是空的。emit仅用于指示在该行发出信号。因此,发射插槽没有意义

假设我有一个QPushButton小部件,它通过其clicked()信号连接到插槽。第一个插槽依次通过emit关键字调用另一个插槽。第二个插槽从第一个插槽中获取一个参数并对其进行处理。这是可行的,但从我对信号槽模式的理解来看,只有发出信号才有意义。发射插槽而不是信号是错误的吗?

是。插槽是一个函数。你可以简单地调用一个插槽,就像C++中的任何其他函数一样。代码>。只有信号应该跟在
emit
关键字后面。

如果查看emit的定义,可以看到它是空的。emit仅用于指示在该行发出信号。因此,发射插槽没有意义


插槽是常规函数,您可以显式调用它们。

为了完成前面的回答,信号实际上是由元对象编译器moc实现的受保护方法。

这传达了错误的含义。emitting实际上传达了发送信号和回调连接插槽的含义,因为关键字emit本身不起任何作用,只是为了更好的可读性。