我正在试验基于设计器的Qt用户界面。设计器UI的功能之一是,如果小部件插槽遵循特殊的名称模式(“on _...”),它们将自动连接。

但是,似乎一建立UI就建立了连接。我不希望这种情况发生。我想在加载后以编程方式修改UI,而不会得到不必要的插槽调用。

因此,是否可以显式控制何时建立这些连接,即何时调用connectSlotsByName()?

最佳答案

您可以使用QObject::blockSignals阻止不必要的信号一段时间,
像这样:

widget->blockSignals(true);
//do work
widget->blockSignals(false);

您也可以先 call disconnect,再 call connect以获得特定信号。

10-05 18:04