如何显示当前选择QML TreeView?

时间:2016-02-01 17:33:29

标签: qml

我可以显示当前选择QML ListView但类似的东西在TreeView中不起作用。

部分问题是TreeView无法识别在index的情况下传递给委托的ListView。我试过styleData.index,但这也不起作用。

    rowDelegate: Item {
        id: row_delegate
        height: 40
        Rectangle {
            id: rectid
            anchors.fill: parent

            MouseArea {
                id: mouse_area
                anchors.fill: parent

                onClicked: {
                    console.log("Row clicked " + rectid.styleData.index)

                }
            }
        }
    }

输出结果为:

  

qml:行点击未定义

1 个答案:

答案 0 :(得分:0)

正如documentation所述,您在命名空间styleData中有一组属性,可以在委托中用于几乎相同的目的。

例如,您可以设置属于您的委托的标签的text属性,如下所示:

text: styleData.value

styleData.value的位置(文档摘录):

  

此商品的值或文字

同样,你有:

  

styleData.pressed - 按下项目时为true

     

styleData.index - 模型中当前项的QModelIndex

     

styleData.hasChildren - 如果当前项的模型索引具有或可以有子项

,则为true

依此类推......请参阅文档以获取完整列表。

还要注意文档末尾的注释:

  

注意:出于性能原因,可以跨多个表行回收已创建的委托。这意味着当您使用诸如styleData.row或model之类的隐式属性时,这些值可以在构造委托之后更改。这意味着您不应该假设在调用Component.onCompleted时修复内容,而是依赖于对这些属性的绑定。