赞
踩
QObject::disconnect(widget, nullptr, this, nullptr);//这样会断开之前连接在widget上的所有槽函数绑定
// 禁用槽函数响应,调用时,该对象发出的所有信号都不会触发任何槽函数
obj->blockSignals(true);
// 重新启用槽函数响应
obj->blockSignals(false);
临时关闭一个widget下所有空间的槽函数响应,在特定的操作,如手动更改一些控件的值。还可以再启动
// 禁用一个Object所有的子控件包含自身的槽函数响应 void BlockQObjectAllChildSignals(QObject* object) { object->blockSignals(true); // 获取 Widget 的所有子控件 QList<QObject*> child_objects = object->findChildren<QObject*>(); // 断开所有子控件的信号和槽的连接 foreach (QObject* obj, child_objects) { obj->blockSignals(true); } } // 打开一个Object所有的子控件包含自身的槽函数响应 void OpenQObjectAllChildSignals(QObject* object) { object->blockSignals(false); // 获取 Widget 的所有子控件 QList<QObject*> child_objects = object->findChildren<QObject*>(); // 打开所有子控件的信号和槽的连接 foreach (QObject* obj, child_objects) { obj->blockSignals(false); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。