Qt C++ 信号槽 - 清除信号所必需的?

Qt c++ signal slots - necessary to clear signals?

抱歉,我不能更具体,因为我陷入了 类 和几个 signal/slots 的混乱之中。

在我的项目中,我使用了多个信号槽。现在我的印象是,根据我启动发出信号的例程的频率,我的插槽是 运行 几次。

对于第一个朗姆酒,我的 Slot 是 运行 一次;在第二个 运行 中,它是 运行 两次......当我关闭我的程序时,我再次开始 运行 一次。

发送信号后是否需要以某种方式finish/end/delete信号?

谢谢

A 信号保持连接,直到使用 disconnect(),或者发送者或接收者被删除。 因此,每个 signal/slot 对只需连接一次,然后每次发出信号时,都会调用插槽。

查看 Qt::UniqueConnection 标志。

您正在将信号连接到插槽以响应事件。当事件重复时,这会导致重复连接。在大多数情况下,这是一个错误。通常您想在 class 构造函数中设置连接,或者在创建新对象并将其添加到您的系统时设置连接。

唯一连接会掩盖问题,但不会解决问题 - 解决方案是将 connect 语句移动到不会重新执行的位置。