Qt-QML:What';这是连接属性的确切含义
我目前在VS2015上使用Qt 5.8.0 64位,Windows 10 64位。根据文档,类型Qt-QML:What';这是连接属性的确切含义,qt,qml,qt5,qtquick2,qtquickcontrols2,Qt,Qml,Qt5,Qtquick2,Qtquickcontrols2,我目前在VS2015上使用Qt 5.8.0 64位,Windows 10 64位。根据文档,类型Connections从5.7.0开始获得了一个新属性enabled。医生说: 此属性保存项目是否接受更改事件 我猜这个属性控制连接是否有效,对吗?但是,当我关闭此属性时,连接仍在工作!演示代码如下所示: import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.0 ApplicationWindow {
Connections
从5.7.0开始获得了一个新属性enabled
。医生说:
此属性保存项目是否接受更改事件
我猜这个属性控制连接是否有效,对吗?但是,当我关闭此属性时,连接仍在工作!演示代码如下所示:
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Button{
id: button
anchors.centerIn: parent
width: 100
height: 50
text: "Click!"
}
Connections{
target: button
enabled: false
onClicked:{
console.log("button Clicked!");
}
}
}
“button Clicked!”仍从调试输出中运行!“启用”属性的确切含义是什么
p.S.:如果我将“enabled”设置为true(默认值也为true),并将其关闭组件,则连接将无效,并且在单击按钮时调试控制台将不再打印“button Clicked!”:
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Button{
id: button
anchors.centerIn: parent
width: 100
height: 50
text: "Click!"
}
Connections{
id: connections
target: button
enabled: true
onClicked:{
console.log("button Clicked!");
}
}
Component.onCompleted: connections.enabled = false;
}
它是一个bug吗?是的,您偶然发现了一个bug,enabled
属性的初始值被忽略<代码>启用
仅在连接
项完全初始化后更改值时才考虑。因此,您的组件.onCompleted
技巧是一个很好的解决方法
我已将问题修复为。根据所描述的行为,它似乎是一个bug。我从未使用过此功能,因为您可以将目标设置为
null
,以停用连接。然而,“enabled”如果有效,似乎比将target设置为null
更有意义和自我解释。