[英]How can I find out what slot was connected to my signal?
使用Qt 5.11。 通过重写QObject::connectNotify
,如果插槽连接到我的信号,我会收到通知:
void connectNotify(const QMetaMethod &signal) override {
if (signal == QMetaMethod::fromSignal(&PromiseBase::resolved()) && isResolved()) {
// Here, I want to call the slot immediately.
}
}
当发生这种情况时,我想立即调用插槽 - 只是那个插槽,而不是所有可能连接到信号的其他插槽。 我怎样才能做到这一点? Qt框架给了我信号,但不是槽。
上下文:我正在开发一个类似于JavaScript承诺的Promise类。 期望将插槽连接到已resolved
信号将始终只调用一次插槽,无论承诺是否已解决或仍未决定。
(我正在编写自己的Promise而不是使用QFuture,因为没有记录和支持的方法来创建自己的QFuture对象,QFuture不支持报告错误。)
你有这个功能
int QObject::receivers ( const char * signal ) const [protected]
返回连接到信号的接收器数量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.