Spec-Zone.ru › Qt 5.15

Тип QML TreeView

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

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

BasicTableView

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

Свойства

  • 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.criteria : перечисление
    • section.delegate : Component
    • section.labelPositioning : перечисление
    • section.property : строка
  • 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 этому свойству сбрасывает его до значения по умолчанию.)

Это свойство было добавлено в 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.criteria : enumeration

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

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

selection : ItemSelectionModel

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

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

Например:

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 при нажатии на элемент, все элементы между текущим и нажатым элементом выбираются.

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

sortIndicatorColumn : int

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

sortIndicatorOrder : int

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

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

sortIndicatorVisible : bool

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

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

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

activated(QModelIndex index)

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

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

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

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

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

clicked(QModelIndex index)

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

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

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

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

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

collapsed(QModelIndex index)

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

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

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

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

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

doubleClicked(QModelIndex index)

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

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

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

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

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

expanded(QModelIndex index)

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

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

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

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

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

pressAndHold(QModelIndex index)

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

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

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

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

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

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

TableViewColumn addColumn(object column)

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

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

void collapse(QModelIndex index)

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

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

void expand(QModelIndex index)

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

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

TableViewColumn getColumn(int index)

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

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, если элемент модели в позиции index раскрыт; в противном случае возвращает false.

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

void moveColumn(int from, int to)

Перемещает столбец из позиции from в позицию to.

void removeColumn(int index)

Удаляет и уничтожает столбец в заданной позиции index.

void resizeColumnsToContents()

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

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

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

Spec-Zone.ru

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