0%

Connections属性说明

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

本文: https://www.lovejia.win/blog/article/Connections.html
参考原文:http://doc.qt.io/qt-5/qml-qtqml-connections.html
参考译文:http://blog.csdn.net/vampire_armand/article/details/38981327

属性说明

enabled : bool

此属性用于保存项目是否接受更改事件。
默认情况下,此属性为true。

ignoreUnknownSignals : bool

通常,连接到不存在的信号会产生运行时错误。
如果此属性设置为true,将忽略此类错误。如果打算连接到不同类型的对象,为每个对象处理一组不同的信号,这将非常有用。
当我们连接到不同的对象,每个对象处理一组不同的信号时,有的对象没有A信号,有的对象没有B信号,当我们忽略不存在的信号,程序就能正常工作。

target : Object

此属性保存发送信号的对象。
如果未设置此属性,则target默认为Connection的父级。
如果设置为null,则不进行任何连接,并且忽略任何信号处理程序,直到目标不为null。

功能简述

Connections对象创建与QML信号的连接。
当连接到QML中的信号时,通常的方式是创建一个“on”处理程序,在收到信号时作出反应。但是,在某些情况下不能以这种方式连接信号,例如:
1、需要多个连接到相同的信号
2、创建超出信号发送器范围的连接
3、连接到QML中未定义的目标
当需要其中任何一个时,可以使用连接类型。

下面的例子显示创建连接:

1
2
3
4
5
6
7
8
9
10
11
12
import QtQuick 2.0
Rectangle{
width: 100; height: 100;
MouseArea {
id: area
anchors.fill: parent;
}
Connections {
target: area
onClicked: { console.log(" ok");}
}
}

以下示例当连接到QML中的信号时,通常的方式是创建一个“on ”处理程序,在收到信号时作出反应:

1
2
3
MouseArea {
onClicked: { foo(parameters) }
}

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

1
2
3
4
5
MouseArea {
Connections {
onClicked: foo(parameters)
}
}

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

1
2
3
4
5
6
7
8
MouseArea {
id: area
}
// ...
Connections {
target: area
onClicked: foo(parameters)
}
------本文结束    感谢阅读------
你打赏你的,我分享我的!