qml TreeView横向滑动条自动变换

我最近用到了qml的树形组件TreeView,遇到了一个难点,就是如何让它自带的横向滑动条随节点展开收起而变化,我的想法是每次变化时,计算节点Item的长度,以最大或最小的为准,但我不知道怎样遍历TreeView的每个节点啊?

官方文档应该有相应的说明,如果有问题,贴出代码