Ich verwende derzeit Qt 5.8.0 64bit auf VS2015, Windows 10 64bit. Laut dem Dokument hat der Typ Connections
eine neue Eigenschaft als enabled
seit 5.7.0 gewonnen. Das Dokument lautet:Qt QML: Was ist die genaue Bedeutung der Eigenschaft aktiviert von Verbindungen
Diese Eigenschaft enthält, ob das Element Änderungsereignisse akzeptiert.
Ich denke, diese Eigenschaft steuert, ob die Verbindungen gültig sind, oder? Allerdings, wenn ich diese Eigenschaft abstelle und die Verbindungen noch funktionieren! Der Demo-Code ist unten aufgeführt:
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!");
}
}
}
"taste clicked!" läuft immer noch vom Debug-Ausgang! Was ist die genaue Bedeutung der Eigenschaft "aktiviert"?
PS: es stellt sich heraus, ob ich „enabled“ als true gesetzt (der Standardwert ist auch wahr), und schalten Sie ihn Component.onCompleted
ausgeschaltet, werden die Verbindungen ungültig und die Debug-Konsole wird nicht gedruckt „klicken! " beim Klicken auf die Schaltfläche:
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;
}
Ist es ein Fehler?
Mit dem beschriebenen Verhalten scheint es ein Fehler zu sein. Ich habe diese Funktion nie benutzt, da Sie das Ziel auf "null" setzen können, um die 'Verbindungen' zu deaktivieren. – derM
Ja, ich habe die Verbindungen wie gesagt kontrolliert. Wenn es jedoch funktioniert, scheint "aktiviert" viel aussagekräftiger und selbst erklärender zu sein, als das Ziel auf "null" zu setzen. –