手动调用connectSlotsByName()

时间:2016-04-16 12:27:36

标签: c++ qt signals-slots qt-designer

我正在尝试使用基于设计器的Qt用户界面。设计器UI的一个功能是,如果小部件插槽遵循特殊的名称模式("在_..."上),则自动连接小部件插槽。

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

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

1 个答案:

答案 0 :(得分:3)

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

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

您也可以拨打disconnect,然后拨打connect以获取特定信号。