QML - TableView - Доступ к свойству TableViewColumn внутри headerDelegate - PullRequest
0 голосов
/ 26 июня 2019

У меня есть заказ headerDelegate внутри TableView. Мне нужно получить доступ к свойствам TableViewColumn, таким как resizable свойство внутри headerDelegate.

Есть ли способ получить доступ к этому свойству внутри headerDelegate?

Возможно ли получить доступ к пользовательским свойствам в TableViewColumn внутри headerDelegate?

Например, можно ли создать пользовательское свойство с именем enableSorting внутри TableViewColumn и получить к нему доступ внутри headerDelegate, чтобы скрыть или показать sortingIndicator?

UPDATE

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 являются воображаемыми. Я хотел бы получить что-то подобное.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

То, что вы хотите, это установить свойство идентификатора TableView. Вы сможете получить к нему доступ из всего диапазона файлов любым способом.

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

Важное примечание: установка идентификатора делегата и обратный доступ не будут работать, потому что он не создается прямо при чтении интерпретатора qml, плюс он, вероятно, предназначается для нескольких экземпляров элементов делегата.

0 голосов
/ 27 июня 2019

Из документации 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"

 }

}
...