由于qml中TreeView控件的currentIndex属性是只读属性,在与其它控件联动时可以通下以下方法实现选中TreeView的项;
1.控件定义
TreeView {
id: treeview; Layout.fillWidth: true; Layout.fillHeight: true; Layout.margins: 10; Layout.topMargin: 0;
UseTv.TableViewColumn { title: "文件/序号"; role: "file"; width: 200; }
UseTv.TableViewColumn { title: "时间/数据"; role: "time"; width: 300; }
model: BackEnd.tree_model(2); // 设置数据模型
selection : ItemSelectionModel { // 设置选择模型
model: BackEnd.tree_model(2);
onCurrentIndexChanged: {
//`console.log(current, previous, treeview.currentIndex);
}
}
}
2.设置方法
// 首选设置选择模型
treeview.selection.setCurrentIndex(idx, ItemSelectionModel.Select);
// 激活焦点
treeview.__listView.forceActiveFocus();
// 调用未公开属性;下面两种方法都可以
treeview.__listView.currentIndex = idx.row; // treeview.__currentRow = idx.row;