Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt-QML:What';这是连接属性的确切含义_Qt_Qml_Qt5_Qtquick2_Qtquickcontrols2 - Fatal编程技术网

Qt-QML:What';这是连接属性的确切含义

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 {

我目前在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 {
    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
更有意义和自我解释。