我目前在VS2015,Windows 10 64bit上使用Qt 5.8.0 64位。根據該文件,類型Connections
自5.7.0以來獲得了enabled
的新屬性。該文檔說:Qt QML:Connections的啓用屬性的確切含義是什麼
此屬性保持項目是否接受更改事件。
我猜這個屬性控制連接是否有效,對不對?但是,當我關閉此屬性時,連接仍在工作!演示代碼如下:
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!」仍然從調試輸出中耗盡! 「啓用」屬性的確切含義是什麼?
PS:事實證明,如果我設置爲「Enabled」爲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;
}
這是一個錯誤?
隨着所描述的行爲,它似乎是一個錯誤。我從來沒有使用過這個功能,因爲你可以將target設置爲null來關閉Connections。 – derM
是的,我曾經像你說的那樣控制連接。然而,「啓用」,如果它起作用,似乎比設置目標爲'null'更有意義和自我解釋。 –