TreeView
의 현재 행 번호와 상위 행 번호를 매개 변수로 취하는 Q_INVOKABLE 함수를 호출하는 일부 onClicked()
논리를 포함하는 QML TreeView
이 있습니다. 문제는 내가 무언가를 선택한 다음 클릭하여 펼치거나 붕괴시키는 것입니다. 이전 값이 계속 전달되어 응용 프로그램이 충돌하는 경우가 있습니다. 나는 treeView.selection.clearCurrentIndex()
및 treeView.selection.clearSelection()
을 onCollapsed()
및 onExpanded()
에 호출하려고 시도했지만 항목을 선택 취소하지만 어떤 이유로 인해 이전에 선택한 항목의 값이 계속 전달되었습니다.QML TreeView는 축소하거나 클릭 할 때 이전 선택을 전달합니다.
//main.qml
TreeView {
id: treeView
anchors.fill: parent
model: treeviewmodel
selection: ItemSelectionModel {
model: treeviewmodel
}
TableViewColumn {
role: "name_role"
title: "Section Name"
}
onCollapsed: {
treeView.selection.clearSelection() // deselects the item, but still passes the previous values
}
onExpanded: {
treeView.selection.clearSelection()
}
onClicked: {
console.log("Current Row: " + treeView.currentIndex.row + "Parent Row: " + treeView.currentIndex.parent.row)
//I need something here that will set treeView.currentIndex.row and treeView.currentIndex.parent.row to -1
//so that when I collapse or expand, -1 gets passed instead of the previous values
}
}
'onClicked'이벤트에서 -1을 전달하기 위해 사용자가 트리를 확장하거나 접을 때 어떤 속성이 있어야 할지도 모릅니다. – Tarod
@Tarod 속성이란 무엇입니까? 당신은 정교 할 수 있습니까? 감사! –
축소 후 Q_INVOKABLE 함수에 -1을 전달해야하거나 트리를 확장해야하는 경우 트리를 접거나 확장 한 후 플래그를 사용하고 true로 설정하십시오. 그 후, onClicked 이벤트가 호출 될 때, 플래그를 체크한다 : true이면 Q_INVOKABLE 함수에 -1을 전달하고, 그렇지 않으면'treeView.currentIndex.row'와'treeView.currentIndex.parent.row'를 사용한다. 거짓이면 QML. 필요한 경우 플래그 값을 false로 변경하십시오. 어쩌면 나는이 문제를 이해하지 못했지만, 질문을 읽은 후에 생각한 해결책이다. – Tarod