Тип QML TreeView
Предоставляет представление дерева со скроллбарами, стилизацией и секциями заголовков. Подробнее...
| Выражение импорта: | import QtQuick.Controls 1.4 |
| С момента: | Qt 5.5 |
| Наследуется от: |
Свойства
- currentIndex : QModelIndex
- itemDelegate : Component
- model : QAbstractItemModel
- rootIndex : QModelIndex
-
section
- section.property : string
- section.criteria : перечисление
- section.delegate : Component
- section.labelPositioning : перечисление
- selection : ItemSelectionModel
Сигналы
- activated(index)
- clicked(index)
- collapsed(index)
- doubleClicked(index)
- expanded(index)
- pressAndHold(index)
Методы
- void collapse(index)
- void expand(index)
- QModelIndex indexAt( int x, int y)
- bool isExpanded(index)
Подробное описание
Класс TreeView реализует древовидное представление элементов из модели.
Данные для каждой строки в TreeView предоставляются моделью. TreeView принимает модели, производные от класса QAbstractItemModel.
Вы предоставляете заголовок столбца и его размер, добавив TableViewColumn, как показано ниже.
TreeView {
TableViewColumn {
title: "Name"
role: "fileName"
width: 300
}
TableViewColumn {
title: "Permissions"
role: "filePermissions"
width: 100
}
model: fileSystemModel
} Секции заголовка привязаны к значениям в модели model путём определения роли модели, к которой они привязаны. Затем каждое свойство в модели будет отображаться в соответствующем столбце.
Вы можете настроить внешний вид, переопределив свойства itemDelegate, rowDelegate или headerDelegate.
Само представление не предоставляет сортировку. Это необходимо выполнять в самой модели. Однако вы можете обеспечить сортировку в модели и включить индикаторы сортировки в заголовках.
- int sortIndicatorColumn - Индекс текущего столбца сортировки
- bool sortIndicatorVisible - Включить индикатор сортировки
- перечисление sortIndicatorOrder - Qt.AscendingOrder или Qt.DescendingOrder в зависимости от состояния
Вы можете создать пользовательский вид для TreeView, назначив TreeViewStyle.
Документация по свойствам
currentIndex : QModelIndex
Индекс модели текущей строки в представлении дерева.
itemDelegate : Component
Это свойство определяет делегат для рисования определённой ячейки.
В делегате элемента вы имеете доступ к следующим специальным свойствам:
- styleData.selected - если элемент в данный момент выбран
- styleData.value - значение или текст для этого элемента
- styleData.textColor - цвет текста по умолчанию для элемента
- styleData.row - индекс строки представления
- styleData.column - индекс столбца представления
- styleData.elideMode - режим обрезки столбца
- styleData.textAlignment - горизонтальное выравнивание текста столбца
- styleData.pressed - true, когда элемент нажат
- styleData.hasActiveFocus - true, когда строка имеет фокус
- styleData.index - QModelIndex текущего элемента в модели
- styleData.depth - глубина текущего элемента в модели
- styleData.isExpanded - true, когда элемент раскрыт
- styleData.hasChildren - true, если индекс модели текущего элемента имеет или может иметь дочерние элементы
- styleData.hasSibling - true, если у индекса модели текущего элемента есть брат
Пример:
itemDelegate: Item {
Text {
anchors.verticalCenter: parent.verticalCenter
color: styleData.textColor
elide: styleData.elideMode
text: styleData.value
}
} Примечание: По соображениям производительности созданные делегаты могут быть повторно использованы для нескольких строк таблицы. Это означает, что при использовании неявных свойств, таких как styleData.row или model, эти значения могут измениться после создания делегата. Это означает, что вы не должны полагаться на неизменность содержимого при вызове Component.onCompleted, а вместо этого использовать привязки к таким свойствам.
model : QAbstractItemModel
Это свойство содержит модель, предоставляющую данные для представления дерева.
Модель предоставляет набор данных, отображаемых представлением. TreeView принимает модели, производные от класса QAbstractItemModel.
rootIndex : QModelIndex
Индекс модели корневого элемента в представлении дерева. Корневой элемент — это родительский элемент для элементов верхнего уровня представления. Только элементы, являющиеся потомками корневого элемента, будут видны в представлении.
Его значение по умолчанию — недействительный QModelIndex, что означает, что все данные модели отображаются представлением дерева (присвоение undefined этому свойству сбросит его на значение по умолчанию).
Это свойство было добавлено в QtQuick.Controls 1.5.
section.property : string
Эти свойства определяют метки секций.
См. также ListView.section.
selection : ItemSelectionModel
По умолчанию модель выбора — null и поддерживается только одиночный выбор.
Для использования другого режима выбора, как описано в selectionMode, необходимо установить ItemSelectionModel в свойство selection.
Например:
TreeView {
model: myModel
selection: ItemSelectionModel {
model: myModel
}
TableViewColumn {
role: "name"
title: "Name
}
}
См. также selectionMode.
Документация по сигналам
activated(index)
Выдаётся, когда пользователь активирует строку в дереве с помощью мыши или клавиатуры. Активация мышью происходит при одиночном или двойном щелчке, в зависимости от платформы.
index — индекс модели активированной строки в дереве.
Примечание: Этот сигнал генерируется только для взаимодействия с мышью, которое не блокируется в строке или делегате элемента.
Соответствующий обработчик — onActivated.
clicked(index)
Выдаётся, когда пользователь щелкает допустимую строку в дереве один раз.
index — индекс модели щелкнутой строки в дереве.
Примечание: Этот сигнал выдаётся только если строка или делегат элемента не принимают события мыши.
Соответствующий обработчик — onClicked.
collapsed(index)
Выдаётся, когда допустимая строка в дереве сворачивается, скрывая свои дочерние элементы.
index — индекс модели свернутой строки в дереве.
Примечание: Этот сигнал генерируется только если строка или делегат элемента не принимают события мыши.
Соответствующий обработчик — onCollapsed.
doubleClicked(index)
Выдаётся, когда пользователь дважды щелкает допустимую строку.
index — индекс модели строки, дважды щёлкнутой пользователем.
Примечание: Этот сигнал выдаётся только если строка или делегат элемента не принимают события мыши.
Соответствующий обработчик — onDoubleClicked.
expanded(index)
Выдаётся, когда допустимая строка в дереве разворачивается, показывая свои дочерние элементы.
index — индекс модели развернутой строки в дереве.
Примечание: Этот сигнал генерируется только если строка или делегат элемента не принимают события мыши.
Соответствующий обработчик — onExpanded.
pressAndHold(index)
Выдаётся, когда пользователь удерживает нажатой кнопку мыши на допустимой строке в дереве.
index — индекс модели строки, удерживаемой пользователем.
Примечание: Этот сигнал генерируется только если строка или делегат элемента не принимают события мыши.
Соответствующий обработчик — onPressAndHold.
Документация по методам
void collapse(index)
Сворачивает элемент модели, указанный индексом.
См. также collapsed и isExpanded.
void expand(index)
Развертывает элемент модели, указанный индексом.
См. также expanded и isExpanded.
QModelIndex indexAt( int x, int y)
Возвращает индекс модели видимой строки в точке x, y в координатах содержимого. Если в указанной точке нет видимой строки, возвращается недействительный QModelIndex.
Примечание: Этот метод следует вызывать только после завершения компонента.
bool isExpanded(index)
Возвращает true, если элемент модели с указанным индексом развернут; в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qml-qtquick-controls-treeview.html