Chips
Kirigami.Chip komponenter är små element som ärvs från AbstractButton och som används för att visa vanliga egenskaper eller filtrera något. Det är vanligtvis textelement, som också är ändringsbara och levereras med en valfri borttagningsknapp.
Snabbstart
Chips kan enkelt läggas till genom att använda komponenten Kirigami.Chip
. Genom att tilldela en sträng till deras fält text
, ger vi chips sina namn.
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"
}
}
}
}
Med Repeaters (rekommenderas)
Eftersom chips är avsedda att användas mer än en gång, vill man förmodligen använda någon form av datastruktur med listor och iterera över den för att visa chipsen. För att göra det behöver vi en ListModel och en Repeater /qt-6/qml-qtquick-repeater.html) komponent.
ListModel används som lagring för chips. För att fylla i ListModel (och därmed chips), deklarerar vi ett par ListElement-komponenter, som innehåller ett fält som kallas text
. Vi kan tilldela strängen härifrån till fältet text
för varje upprepat chips.
En Repeater används för att visa chips. Först måste vi ange Repeater-fältet model
i vår ListModel, eller skapa en ListModel inuti en Repeater. Därefter deklarerar vi komponenten Kirigami.Chip
inne i vår Repeater och tilldelar elementens data i fältet text
med hjälp av egenskapen 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
}
}
}
}
}
Anmärkning
Man kan lägga till och ta bort data från en ListModel dynamiskt, så gör motsvarande Repeater ändringarna automatiskt. Men att helt enkelt ändra ett specifikt objekt antingen i en Repeater eller en ListModel påverkar dock inte den andra, utan kräver att båda ändras, såvida inte något som en QAbstractListModel används. Se exempelprogrammet för mer information.Exempelprogram
Exempelprogrammet nedan visar hur chips kan användas i program såsom uppgiftslistor.
|
|