Spec-Zone.ru › Qt 5.11

Тип 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
}

Секции заголовка прикрепляются к значениям в 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 для выбора.

Например:

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/archives/qt-5.11/qml-qtquick-controls-treeview.html

Spec-Zone.ru

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