我正在开发一个有 3 个插件的应用程序。主应用程序是一个 Qt 项目,我们还添加了另外 3 个 Qt 项目,它们是主应用程序的插件。
我在 SIGNAL 所在的一个项目中调用 connect 语句triggered()
,该对象如下所示,并且有一个插槽slt_menuSetIngestDir()。我在另一个项目中调用一个连接语句,它具有相同的对象、相同的信号triggered()
但具有不同的插槽slt_IngestDir()。
这是项目 1 中的示例连接语句:
connect(PluginLocalManager::getInstance()->getEventIF()->getMenuAction(M_TOOL_SETINGESTDIR), SIGNAL(triggered()), this, SLOT(slt_menuSetIngestDir()) );
项目 2 中的示例 Connect 语句:
connect(PluginLocalManager::getInstance()->getEventIF()->getMenuAction(M_TOOL_SETINGESTDIR), SIGNAL(triggered()), this, SLOT(slt_IngestDir()) );
问题是当我运行应用程序时,当单击特定选项时,它会使用相同的对象触发 SIGNAL 并同时调用两个不同的插槽。
我是否可以断开项目 2 中的信号并确保项目 1 中的连接语句专门用于项目 1,反之亦然???我在 Qt 中遇到过disconnect
声明,但看起来我遗漏了一些东西。请帮忙!!