Qt 无法引用listview qml的突出显示id

Qt 无法引用listview qml的突出显示id,qt,listview,qml,highlight,referenceerror,Qt,Listview,Qml,Highlight,Referenceerror,我有一个listview突出显示组件,其id需要在该组件外部使用(包括listview内部和外部),但无论我如何尝试,都会出现引用错误:id未定义。无法找到解决方法。我在某个地方读到,由于高亮显示的类型是组件,所以不能在组件之外使用。但我真的需要在外面用这个身份证。有人能帮忙吗 我目前拥有的代码的一个小提纲是 ListView { id: listId MouseArea { anchors.fill: parent onClicked: {

我有一个listview突出显示组件,其id需要在该组件外部使用(包括listview内部和外部),但无论我如何尝试,都会出现
引用错误:id未定义。
无法找到解决方法。我在某个地方读到,由于高亮显示的类型是组件,所以不能在组件之外使用。但我真的需要在外面用这个身份证。有人能帮忙吗 我目前拥有的代码的一个小提纲是

ListView {
    id: listId
    MouseArea {
        anchors.fill: parent
        onClicked: {
            boxId.visible = false
        } //unable to use 'boxId' like this. Getting reference error
    }

    delegate: Rectangle {}

    highlight: Rectangle {
        id: boxId
    }
}


问题是,在
MouseArea
中尝试访问高亮显示中的项目时,该项目并不总是存在。因此,不能直接从此范围引用它

您可以尝试以下操作,以仅在它存在时访问它:

ListView {
    id: listId
    MouseArea {
        anchors.fill: parent
        onClicked: {
            var item = ListView.highlightItem

            if (item) {
                item.visible = false
            }
        }
    }

    delegate: Rectangle {}

    highlight: Rectangle {
        id: boxId
    }
}

无法访问
列表视图。由于范围限制,突出显示
组件。它在访问时根本不可能存在。你不应该这么做,想想看。如果你仍然想遵循命令式风格,请使用来引用突出显示的项目。它成功了!谢谢:)谢谢@Sandro4912复制我的评论:-)我想给你评论中提到的东西提供一个合适的代码示例是个好主意。