Spec-Zone.ru › Qt 5.12

Тип QML TreeView

Обеспечивает представление дерева со скроллбарами, стилизацией и разделами заголовков. Подробнее...

Выражение импорта: import QtQuick.Controls 1.4
С тех пор: Qt 5.5
Наследуется от:

ScrollView

  • Список всех членов, включая унаследованные

Свойства

  • currentIndex : QModelIndex
  • itemDelegate : Component
  • model : QAbstractItemModel
  • rootIndex : QModelIndex
  • section
    • section.property : string
    • section.criteria : перечисление
    • section.delegate : Component
    • section.labelPositioning : перечисление
  • selection : ItemSelectionModel

Сигналы

  • activated(QModelIndex index)
  • clicked(QModelIndex index)
  • collapsed(QModelIndex index)
  • doubleClicked(QModelIndex index)
  • expanded(QModelIndex index)
  • pressAndHold(QModelIndex index)

Методы

  • void collapse(QModelIndex index)
  • void expand(QModelIndex index)
  • QModelIndex indexAt( int x, int y)
  • bool isExpanded(QModelIndex index)

Подробное описание

Класс TreeView реализует древовидное представление элементов из модели.

Данные для каждой строки в TreeView предоставляются моделью. TreeView принимает модели, производные от класса QAbstractItemModel.

Вы предоставляете заголовок и размер столбца, добавив TableViewColumn, как показано ниже.

TreeView {
    TableViewColumn {
        title: "Name"
        role: "fileName"
        width: 300
    }
    TableViewColumn {
        title: "Permissions"
        role: "filePermissions"
        width: 100
    }
    model: fileSystemModel
}

Разделы заголовков прикрепляются к значениям в модели, определяя роль модели, к которой они прикрепляются. Каждое свойство в модели затем будет отображаться в соответствующем столбце.

Вы можете настроить вид, переопределив свойства itemDelegate, rowDelegate или headerDelegate.

Сам вид не предоставляет сортировку. Это нужно сделать в самой модели. Однако вы можете предоставить сортировку в модели и включить индикаторы сортировки в заголовках.

  • int sortIndicatorColumn - Индекс текущего столбца сортировки
  • bool sortIndicatorVisible - Включить индикатор сортировки
  • enum 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 в свойство выбора.

Например:

TreeView {
   model: myModel
   selection: ItemSelectionModel {
        model: myModel
   }
   TableViewColumn {
       role: "name"
       title: "Name
   }
}

См. также selectionMode.

Документация по сигналам

activated(QModelIndex index)

Выдается, когда пользователь активирует строку в дереве с помощью мыши или клавиатуры. Активация мышью происходит при однократном или двойном щелчке в зависимости от платформы.

index — индекс модели активированной строки в дереве.

Примечание: Этот сигнал генерируется только для взаимодействия с мышью, которое не заблокировано в строке или делегате элемента.

Соответствующий обработчик — onActivated.

clicked(QModelIndex index)

Выдается, когда пользователь щелкает по действительной строке в дереве один раз.

index — индекс модели щелкнутой строки в дереве.

Примечание: Этот сигнал генерируется только если строка или делегат элемента не принимают события мыши.

Соответствующий обработчик — onClicked.

collapsed(QModelIndex index)

Выдается, когда действительная строка в дереве сворачивается, скрывая свои дочерние элементы.

index — индекс модели свёрнутой строки в дереве.

Примечание: Этот сигнал генерируется только если строка или делегат элемента не принимают события мыши.

Соответствующий обработчик — onCollapsed.

doubleClicked(QModelIndex index)

Выдается, когда пользователь дважды щелкает по действительной строке.

index — индекс модели строки, дважды щелкнутой в дереве.

Примечание: Этот сигнал генерируется только если строка или делегат элемента не принимают события мыши.

Соответствующий обработчик — onDoubleClicked.

expanded(QModelIndex index)

Выдается, когда действительная строка в дереве развертывается, отображая свои дочерние элементы.

index — индекс модели развернутой строки в дереве.

Примечание: Этот сигнал генерируется только если строка или делегат элемента не принимают события мыши.

Соответствующий обработчик — onExpanded.

pressAndHold(QModelIndex index)

Издается при нажатии и удерживании пользователем правильной строки в дереве.

index — индекс модели нажатой строки в дереве.

Примечание: Этот сигнал издается только в том случае, если делегат строки или элемента не обрабатывает события мыши.

Соответствующий обработчик — onPressAndHold.

Документация методов

void collapse(QModelIndex index)

Сворачивает элемент модели, указанный индексом.

См. также collapsed и isExpanded.

void expand(QModelIndex index)

Развертывает элемент модели, указанный индексом.

См. также expanded и isExpanded.

QModelIndex indexAt( int x, int y)

Возвращает индекс модели видимой строки в точке x, y в координатах содержимого. Если в указанной точке нет видимой строки, возвращается недействительный QModelIndex.

Примечание: Этот метод следует вызывать только после завершения компонента.

bool isExpanded(QModelIndex index)

Возвращает true, если элемент модели с указанным индексом развернут; иначе возвращает false.

См. также expanded и expand.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qml-qtquick-controls-treeview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API