Я использую QML TreeView, чтобы перечислить некоторые категоризированные параметры для выбора пользователем.
Используя свойство TreeView.selection, я назначил SlectionModel древовидной структуре. У меня проблема с предварительным выбором элемента. С использованием
treeView.selection.setCurrentIndex (idx, 3)
Я устанавливаю только свойства модели выбора (элемент будет правильно выбран / выделен), но treeView.currentIndex по-прежнему недействителен. И при использовании клавиш вверх / вниз он перейдет к первому элементу.
Что мне не хватает?
ItemSelectionModel {
id: treeViewSelectionModel
objectName: "treeViewSelectionModel"
model: myModel
onCurrentChanged:{console.log("Selectio - current changed from ",previous, " to ", current)}
}
TreeView {
focus: true
id: treeView
objectName: "treeView"
headerVisible: false //to hide the header
TableViewColumn {
title: "Name"
role: "name"
}
model: myModel
selectionMode: SelectionMode.SingleSelection
selection: treeViewSelectionModel
Component.onCompleted: {
var idx = treeView.model.getPreselected();
console.log("preselected",idx);
treeView.selection.setCurrentIndex(idx,ItemSelectionModel.Select);
treeView.selection = treeView.selection
//These logged current indexes does not match
console.log("treeView.currentIndex",treeView.currentIndex);
console.log("treeView.selection.currentIndex",treeView.selection.currentIndex);
updateGuiSize();
treeView.forceActiveFocus();
}
}