Spec-Zone.ru › Qt 5.6

Тип QML TreeView

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

Заявление об импорте: import QtQuick.Controls 1.4
С: Qt 5.5
Наследует:

ScrollView

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

Свойства

  • alternatingRowColors : bool
  • backgroundVisible : bool
  • columnCount : int
  • contentFooter : Component
  • contentHeader : Component
  • currentIndex : QModelIndex
  • headerDelegate : Component
  • headerVisible : bool
  • itemDelegate : Component
  • model : QAbstractItemModel
  • rootIndex : QModelIndex
  • rowDelegate : Component
  • section
    • section.property : string
    • section.criteria : перечисление
    • section.delegate : Component
    • section.labelPositioning : перечисление
  • selection : ItemSelectionModel
  • selectionMode : int
  • sortIndicatorColumn : int
  • sortIndicatorOrder : int
  • sortIndicatorVisible : bool

Сигналы

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

Методы

  • TableViewColumn addColumn(object column)
  • void collapse(QModelIndex index)
  • void expand(QModelIndex index)
  • TableViewColumn getColumn(int index)
  • QModelIndex indexAt(int x, int y)
  • TableViewColumn insertColumn(int index, object column)
  • bool isExpanded(QModelIndex index)
  • void moveColumn(int from, int to)
  • void removeColumn(int index)
  • void resizeColumnsToContents()

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

Класс 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 - Включить индикатор сортировки
  • enum sortIndicatorOrder - Qt.AscendingOrder или Qt.DescendingOrder в зависимости от состояния

Вы можете создать настраиваемый вид TreeView, назначив TreeViewStyle.

Документация по свойствам

alternatingRowColors : bool

Это свойство установлено в true если представление чередует цвета строк. Значение по умолчанию true.

backgroundVisible : bool

Это свойство определяет, заполняется ли фон или нет.

Значение по умолчанию true.

Примечание: rowDelegate не затронуто этим свойством

[только для чтения] columnCount : int

Текущее количество столбцов

contentFooter : Component

Это нижняя часть содержимого представления.

contentHeader : Component

Это верхняя часть содержимого представления.

currentIndex : QModelIndex

Индекс модели текущей строки в представлении дерева.

headerDelegate : Component

Это свойство определяет делегат для рисования заголовка.

В делегате заголовка у вас есть доступ к следующим специальным свойствам:

  • styleData.value - значение или текст для этого элемента
  • styleData.column - индекс столбца
  • styleData.pressed - true, когда столбец нажимается
  • styleData.containsMouse - true, когда столбец находится под мышкой
  • styleData.textAlignment - горизонтальное выравнивание текста столбца (с QtQuickControls 1.1)

headerVisible : bool

Это свойство определяет, виден ли заголовок. Значение по умолчанию true.

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

Это свойство QML было добавлено в QtQuick.Controls 1.5.

rowDelegate : Component

Это свойство определяет делегат для рисования строки.

В делегате строки у вас есть доступ к следующим специальным свойствам:

  • styleData.alternate - true, если строка использует альтернативный цвет фона
  • styleData.selected - true, если строка в настоящее время выбрана
  • styleData.row - индекс строки
  • styleData.hasActiveFocus - true, если строка имеет фокус (с версии QtQuick.Controls 1.3)
  • styleData.pressed - true, если строка нажата (с версии QtQuick.Controls 1.3)

Примечание: Для повышения производительности созданные делегаты могут быть повторно использованы в нескольких строках таблицы. Это означает, что при использовании неявных свойств, таких как styleData.row или model, эти значения могут измениться после построения делегата. Это означает, что вы не должны предполагать, что содержимое фиксировано, когда вызывается Component.onCompleted, а вместо этого полагаться на привязки к таким свойствам.

section.property : string

Эти свойства определяют метки разделов.

См. также ListView.section.

selection : ItemSelectionModel

По умолчанию модель выделения — null, и поддерживается только однократное выделение.

Чтобы использовать другой режим выделения, как описано в selectionMode, необходимо установить ItemSelectionModel для выделения.

Например:

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

См. также selectionMode.

selectionMode : int

Этот перечисление указывает, как представление реагирует на пользовательские выделения:

Возможные режимы:

  • SelectionMode.NoSelection — Элементы не могут быть выделены.
  • SelectionMode.SingleSelection — Когда пользователь выбирает элемент, любой уже выбранный элемент становится невыбранным, и пользователь не может отменить выбор выбранного элемента. (По умолчанию)
  • SelectionMode.MultiSelection — Когда пользователь выбирает элемент обычным способом, состояние выбора этого элемента переключается, а другие элементы остаются без изменений.
  • SelectionMode.ExtendedSelection — Когда пользователь выбирает элемент обычным способом, выделение очищается, и новый элемент выбирается. Однако, если пользователь нажимает клавишу Ctrl при нажатии на элемент, нажатый элемент переключается, а все остальные элементы остаются без изменений. Если пользователь нажимает клавишу Shift при нажатии на элемент, все элементы между текущим элементом и нажатым элементом выбираются или отменяется их выбор в зависимости от состояния нажатого элемента. Несколько элементов можно выбрать, перетаскивая указатель мыши по ним.
  • SelectionMode.ContiguousSelection — Когда пользователь выбирает элемент обычным способом, выделение очищается, и новый элемент выбирается. Однако, если пользователь нажимает клавишу Shift при нажатии на элемент, все элементы между текущим элементом и нажатым элементом выбираются.

Это свойство QML было добавлено в QtQuick.Controls 1.1.

sortIndicatorColumn : int

Индекс текущей сортировки столбца. Значение по умолчанию — 0.

sortIndicatorOrder : int

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

  • Qt.AscendingOrder — по умолчанию
  • Qt.DescendingOrder

sortIndicatorVisible : bool

Это свойство отображает или скрывает индикатор сортировки. Значение по умолчанию — false.

Примечание: Само представление не сортирует данные.

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

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.

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

TableViewColumn addColumn(object column)

Добавляет column и возвращает добавленный столбец.

Аргумент column может быть экземпляром TableViewColumn или компонентом. Компонент должен содержать TableViewColumn. В противном случае возвращается null.

void collapse(QModelIndex index)

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

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

void expand(QModelIndex index)

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

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

TableViewColumn getColumn(int index)

Возвращает столбец по заданному index или null, если index недействителен.

QModelIndex indexAt(int x, int y)

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

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

TableViewColumn insertColumn(int index, object column)

Вставляет column в заданный index и возвращает вставленный столбец.

Аргумент column может быть экземпляром TableViewColumn или компонентом. Компонент должен содержать TableViewColumn. В противном случае возвращается null.

bool isExpanded(QModelIndex index)

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

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

END_OF_DOCUMENT_MARKER ```

void moveColumn(int from, int to)

Перемещает столбец from на индекс to.

void removeColumn(int index)

Удаляет и уничтожает столбец по заданному индексу.

void resizeColumnsToContents()

Изменяет размер всех столбцов, чтобы содержимое столбцов и заголовков помещалось.

Этот метод QML был представлен в QtQuick.Controls 1.2.

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

Spec-Zone.ru

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