Spec-Zone.ru › Qt 5.14

Тип 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(index)
  • clicked(index)
  • collapsed(index)
  • doubleClicked(index)
  • expanded(index)
  • pressAndHold(index)

Методы

  • TableViewColumn addColumn(object column)
  • void collapse(index)
  • void expand(index)
  • TableViewColumn getColumn(int index)
  • QModelIndex indexAt( int x, int y)
  • TableViewColumn insertColumn(int index, object column)
  • bool isExpanded(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 для выбора.

Например:

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(index)

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

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

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

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

clicked(index)

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

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

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

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

collapsed(index)

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

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

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

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

doubleClicked(index)

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

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

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

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

expanded(index)

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

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

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

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

pressAndHold(index)

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

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

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

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

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

TableViewColumn addColumn(object column)

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

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

void collapse(index)

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

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

void expand(index)

Развертывает элемент модели, указанный 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(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.14/qml-qtquick-controls-treeview.html

Spec-Zone.ru

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