一.效果
二.原理
重点是如何通过其他列的QModelIndex(假设为index),获取第一列的QModelIndex(假设为firstColumnIndex)。代码如下所示:
QModelIndex firstColumnIndex = model->index(index.row(), 0, index.parent());
这里要注意index函数的第三个参数,第三个参数为父index,因为通过在tree中仅通过row和column无法确定目标index。下面是一个只有一列的tree,注释中为每行的row和column
node0 // row=0, column=0
node1 // 1, 0
node1-0 // 0, 0
node1-1 // 1, 0
node2 // 2, 0
node2-0 // 0, 0
node2-1 // 1, 0
node2-1-0 // 0, 0
node2-1-1 // 1, 0
node2-2 // 2, 0
此时,model->index(0, 0);只会定位到node0,而不是node1-0、 node2-0或node2-1-0。
三.实现
QHTreeView.h