.Qt :阻止 QObject 接收信号
.Qt : Blocking QObject from receiving signals
有没有办法告诉QObject
暂时忽略所有传入的信号?
我知道存在一个"QObject::BlockSignals(bool)
",如果设置为true,QObject
会阻止发送信号。
我希望功能相反,我希望事件队列根本不排队,或者如果在插槽被阻止时忽略调用槽。
换句话说,我要求一个"QObject::BlockSlots(bool)
"。
(据我所知(没有内置的方法可以(暂时(关闭 QObject 信号的接收/处理。
直接在相关函数中实现检查和忽略功能可能是最简单的:
void doStuff()
{
if (ignoreSignals)
return;
// Actual functionality here...
}
如果您无法更改代码,则可以考虑断开((相关的信号槽函数(或整个对象(,并在以后重新连接((它。
或者,您可以实现一个"过滤器"对象,其他对象连接到该对象(而不是直接连接到原始对象(,并且实现前面提到的检查和忽略功能,仅在过滤器未激活时才转发(即发出((ing(信号。
相关文章:
- QObject::连接无法将信号连接到*this*对象的插槽
- QObject::连接不起作用 - 使用函数语法找不到信号
- 在另一个线程上发出 QObject 信号的正确方法?
- 可以在 QObject::connect() C++中连接 QML 对象现有信号?
- 当通过引用传递 QObject 时,C++信号的参数在 QML 中显示为"未定义"
- 我可以交换QObject儿童保持信号和连接的插槽吗?
- 删除 QObject 后 Qt 信号仍在触发
- 替换 QObject 与信号和插槽一起使用时的异常
- .Qt :阻止 QObject 接收信号
- Qt-Qml连接到上下文属性的QObject属性的信号
- QObject::connect:未找到信号
- 将QObject接口信号连接到lambda插槽
- QObject::connect:没有这样的信号progressbarV::keyReleaseEvent()
- 在传递的对象即将被销毁之前,发出将QObject指针作为参数传递的信号是否安全
- 如何使用新的QObject::连接语法与函数指针将QSslSocket::错误信号连接到插槽
- QObject::connect:在 c++ Qt 5.3 中连接 qml 信号时没有这样的信号
- 在信号/插槽处理过程中删除QObject
- 找到“已销毁(QObject*)”信号的发送方
- QObject::connect:没有这样的信号mouseReleaseEvent
- 使用QObject::connect()时,类型签名是否重要,用于将函数连接到信号