Чипы
Компоненты Kirigami.Chip — небольшие элементы, унаследованные от AbstractButton, которые используются для показа общих свойств или фильтров чего-либо. Как правило, это текстовые элементы, с которыми также можно взаимодействовать; они имеют необязательную кнопку удаления.

Начало работы
Чипы легко добавляются с помощью компонента Kirigami.Chip. Присвоение строки унаследованному полю AbstractButton.text задаёт имя чипа.
import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import org.kde.kirigami as Kirigami
Kirigami.ApplicationWindow {
title: "Chips"
pageStack.initialPage: Kirigami.Page {
title: "Chips"
Kirigami.FormLayout {
anchors.fill: parent
Kirigami.Chip {
text: "Chip 1"
}
Kirigami.Chip {
text: "Chip 2"
}
Kirigami.Chip {
text: "Chip 3"
}
}
}
}
С использованием Repeater (рекомендуется)
Так как чипы предназначены для многократного использования, скорее всего, потребуется применить какую-либо структуру данных списка и перебирать их для показа чипов. Для этого нужны компоненты ListModel и Repeater.
ListModel используется как хранилище для чипов. Чтобы заполнить ListModel (а следовательно, и чипы), объявляется пара компонентов ListElement, содержащих поле с именем text. Строку, заданную здесь, можно использовать в качестве значения поля text для каждого повторяющегося чипа.
Repeater используется для показа чипов. Сначала нужно присвоить полю model компонента Repeater наш ListModel или создать ListModel внутри Repeater. Затем внутри Repeater объявляется компонент Kirigami.Chip, а его поле text заполняется данными элемента с помощью свойства modelData.
Kirigami.ApplicationWindow {
id: root
title: "Chips"
ListModel {
id: chips
ListElement { text: "Chip 1" }
ListElement { text: "Chip 2" }
ListElement { text: "Chip 3" }
}
pageStack.initialPage: Kirigami.Page {
title: "Chips"
Kirigami.FormLayout {
anchors.fill: parent
Repeater {
Layout.fillWidth: true
model: chips
Kirigami.Chip {
id: chip
text: modelData
}
}
}
}
}Примечание
Данные можно динамически добавлять в ListModel и удалять из неё, а Repeater автоматически внесёт эти изменения. Однако простое изменение конкретного элемента из Repeater или ListModel не влияет на другой и требует изменения обоих, если не используется что-то наподобие QAbstractListModel. Дополнительные сведения см. в разделе Пример приложения.Пример приложения
В приведённом ниже примере приложения показано, как использовать чипы в таких программах, как списки задач.
| |
