我目前在VS2015,Windows 10 64bit上使用Qt 5.8.0 64bit。根据该文档,类型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!");
}
}
}
“按钮点击!”仍在从调试输出中耗尽! “启用”属性的确切含义是什么?
PS:如果我将“enabled”设置为true(默认值也为true),并将其关闭Component.onCompleted
,连接将变为无效且调试控制台不会打印“按钮点击!”点击按钮后再说:
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;
}
这是一个错误吗?
答案 0 :(得分:2)
是的,您偶然发现了一个错误,enabled
属性的初始值被忽略了。只有在enabled
项目完全初始化后更改了值,才会考虑Connections
。因此,Component.onCompleted
技巧是一个很好的解决方法。