当前位置:   article > 正文

Qt:槽函数的响应和禁用

Qt:槽函数的响应和禁用
彻底断开绑定
QObject::disconnect(widget, nullptr, this, nullptr);//这样会断开之前连接在widget上的所有槽函数绑定
  • 1
临时关闭
// 禁用槽函数响应,调用时,该对象发出的所有信号都不会触发任何槽函数
obj->blockSignals(true);
// 重新启用槽函数响应
obj->blockSignals(false);
  • 1
  • 2
  • 3
  • 4
应用:
临时关闭一个widget下所有空间的槽函数响应,在特定的操作,如手动更改一些控件的值。还可以再启动
  • 1
// 禁用一个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);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/1005473
推荐阅读
相关标签
  

闽ICP备14008679号