本文主要是介绍QTreeViews双击任意列展开,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.效果
二.原理
重点是如何通过其他列的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
这篇关于QTreeViews双击任意列展开的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!