QML-TableView-访问headerDelegate中的TableViewColumn属性

时间:2019-06-26 13:59:49

标签: qt qml tableview

我在headerDelegate中有自定义TableView。我需要访问TableViewColumn内的resizable属性,例如headerDelegate中的headerDelegate属性。

有什么方法可以在TableViewColumn内部访问此属性?

是否可以在headerDelegate内的enableSorting中访问用户定义的属性?

例如,我可以在TableViewColumn内创建用户定义的属性headerDelegate并在sortingIndicator内访问该属性以隐藏或显示TableView{ TableViewColumn{ property bool sortingEnabled: false resizable: false } headerDelegate: Rectangle { color: styleData.resizable?"red":"blue" border.color:styleData.sortingEnabled?"red":"blue" } } 吗?

更新

styleData.resizable

styleData.sortingEnabled#include <OpenNI.h> 是虚构的。我想得到类似的东西。

2 个答案:

答案 0 :(得分:0)

TableView的文档中,可以访问我们可以使用的列

getColumn(index)方法

TableView{

 TableViewColumn{
    property bool sortingEnabled: false
    resizable: false
}

 headerDelegate: Rectangle {
   color: getColumn(styleData.column).resizable?"red":"blue"
   border.color:getColumn(styleData.column).sortingEnabled?"red":"blue"

 }

}

答案 1 :(得分:0)

您想要的是设置TableView id属性。您将能够以所需的方式从整个文件范围访问它。

TableView{
    id: myTableView
    headerDelegate: Rectangle {
       color: myTableView.whatever // Change whatever by any property of myTableView
    }
}

重要说明:设置委托人id并以其他方式访问将不起作用,因为在阅读qml解释器时并没有实例化它,而且它可能会针对多个委托项实例。