无法引用 listview qml 的高亮 id

Unable to reference highlight id of listview qml

我有一个列表视图突出显示组件,我需要在该组件外部(列表视图内部和外部)使用其 ID,但无论我尝试什么,我都会得到 reference error: Id is not defined. 无法找到解决方法。我在某处读到,由于高亮类型是组件,因此不能在其外部使用。但是我真的需要在外面使用这个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
    }
}