如何检查组件是否有信号



有一种可靠的方法可以从 QML/JavaScript 检查组件是否有信号?

目前我发现这段代码按预期工作:

if (myCustomComponent.myCustomSignal)
    myCustomComponent.myCustomSignal();

myCustomComponent甚至像这样简单:

 Item {
    id: root
    signal myCustomSignal()
 }

只有当myCustomComponent有信号时,才会执行信号,但我不确定是否是正确的方式。

不,更可靠的方法应该是检查组件是否有信号:

if (typeof root.myCustomSignal !== 'undefined' && typeof root.myCustomSignal === 'function') { ... }

if (typeof root.myCustomSignal === 'function') { ... }

使用布尔值是不可行的。将示例目标项更改为:

Item {
    id: root
    property bool myCustomSignal: true
}

在这种情况下,您的条件将为真,您将尝试调用将导致崩溃的属性。这种方法不太容易出错,它确保信号存在并且是可调用的/函数。

相关内容

  • 没有找到相关文章