彻底断开绑定
QObject::disconnect(widget, nullptr, this, nullptr);
临时关闭
obj->blockSignals(true);
obj->blockSignals(false);
应用:
临时关闭一个widget下所有空间的槽函数响应,在特定的操作,如手动更改一些控件的值。还可以再启动
void BlockQObjectAllChildSignals(QObject* object) {
object->blockSignals(true);
QList<QObject*> child_objects = object->findChildren<QObject*>();
foreach (QObject* obj, child_objects) {
obj->blockSignals(true);
}
}
void OpenQObjectAllChildSignals(QObject* object) {
object->blockSignals(false);
QList<QObject*> child_objects = object->findChildren<QObject*>();
foreach (QObject* obj, child_objects) {
obj->blockSignals(false);
}
}