连接 QML 类型

描述通用的信号连接。 更多...

导入语句import QtQml

属性

详细描述

Connections 对象创建到 QML 信号的连接。

当连接到 QML 中的信号时,通常的方式是创建一个 "on" 处理程序,以接收信号时做出响应,如下所示

MouseArea {
    onClicked: (mouse)=> { foo(mouse) }
}

然而,在某些情况下,无法以这种方式连接到信号,例如

  • 需要将多个连接到同一信号
  • 在信号发送者作用域外创建连接
  • 连接到 QML 中未定义的目标

在这些情况下需要之一时,可以使用 Connections 类型。

例如,上面的代码可以更改为使用 Connections 对象,如下所示

MouseArea {
    Connections {
        function onClicked(mouse) { foo(mouse) }
    }
}

更一般地,Connections 对象可以是信号发送者对象以外的某些对象的子对象

MouseArea {
    id: area
}
// ...
Connections {
    target: area
    function onClicked(mouse) { foo(mouse) }
}

注意:为了保持向后兼容性,您也可以像在目标对象中直接指定一样,不指定 function,这不被推荐。如果以这种方式指定一个信号处理程序,则将忽略同一 Connections 对象中作为 function 指定的所有信号处理程序。

另请参阅:Qt Qml

属性文档

enabled : bool

此属性表示项目是否接受更改事件。

默认情况下,此属性为 true


ignoreUnknownSignals : bool

通常,连接到不存在的信号会产生运行时错误。

如果将此属性设置为 true,则忽略此类错误。如果您打算连接到不同类型的对象,并为每个对象处理不同的一组信号,则这很有用。


target : QtObject

此属性表示发送信号的表单。

如果没有设置,则 target 默认为 Connection 的父级。

如果设置为 null,则不会建立连接,并且直到目标不是 null,将忽略任何信号处理程序。


© 2024 Qt 公司有限公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可版 1.3 的条款许可的。Qt 及其相关商标是芬兰以及/或全球其他地区的 Qt 公司有限公司的商标。所有其他商标均属于各自所有者。