Toevoegen van acties
Samenvattend
Tot nu toe hebben we een eenvoudige toepassing gemaakt die kaarten kan tonen. We hebben echter nog geen manier om door de gebruiker nieuwe kaarten aan de kaartweergave toe te voegen.
In deze inleiding zullen we kijken naar acties van Kirigami. Deze zullen ons helpen interactiviteit toe te voegen aan onze toepassing op een consistente, snelle en toegankelijke manier.
Acties
A Kirigami.Action encapsulates a user interface action. We can use these to provide our applications with easy-to-reach actions that are essential to their functionality.
Als u Kirigami toepassingen eerder hebt gebruikt, hebt u zeker samengewerkt met acties van Kirigami. In deze afbeelding kunnen we acties rechts van de paginatitel zien met verschillende pictogrammen. Acties van Kirigami kunnen op verschillende manieren getoond worden en kunnen een brede variëteit van dingen doen.


Aftellingen toevoegen
Een aftel toepassing is tamelijk nutteloos zonder de mogelijkheid om aftellingen toe te voegen. Laten we een actie aanmaken die ons dat laat doen.
pageStack.initialPage: Kirigami.ScrollablePage {
// Andere paginaeigenschappen...
actions: [
Kirigami.Action {
id: addAction
icon.name: "list-add-symbolic"
text: i18nc("@action:button", "Add kountdown")
onTriggered: kountdownModel.append({
name: "Kirigami Action added card!",
description: "Congratulations, your Kirigami Action works!",
date: 1000
})
}
]
// ...
}
We are placing our Kirigami.Action within our main page from the previous tutorials. If we wanted to, we could add more actions to our page (and even nest actions within actions!).
De haakjes []
hierboven gebruikt zijn vergelijkbaar met JavaScript arrays, wat inhoud dat u een of meer argumenten aan ze kan doorgeven, gescheiden door komma's:
// Algemeen JavaScript array met componenten:
variable: [ component1, component2 ]
// Het doorgeven van een array met Kirigami acties naar QML:
actions: [ Kirigami.Action {}, Kirigami.Action {} ]
De eigenschappen id
en text
zouden bekend moeten zijn uit eerdere instructies. De geërfde eigenschap Action.icon zou interessant moeten zijn: het is een object met verschillende eigenschappen die u bepaalde pictogrammen voor uw acties laat tonen. Gelukkig alles wat we nodig hebben, bij gebruik van KDE pictogrammen, het leveren van de naameigenschap voor de pictogrameigenschap, icon.name
.
De beschikbare pictogrammen weergeven
Click here to see how to check the available icons on your system
Icon Explorer is a KDE application that lets you view all the icons that you can use for your application. It offers a number of useful features such as previews of their appearance across different installed themes, previews at different sizes, and more. You might find it a useful tool when deciding on which icons to use in your application.
Veel van de pictogrammen van KDE volgen de specificatie FreeDesktop Icon Naming. U zou het daarom ook nuttig kunnen vinden om de website van The FreeDesktop project te consulteren, die lijsten heeft van cross-desktop compatibele pictogramnamen.
De eigenschap onTriggered is de belangrijkste. Dit is wat onze actie zal doen wanneer het wordt gebruikt. U zult opmerken dat in ons voorbeeld we de methode kountdownModel.append van het kountdownModel
gebruiken dat we in onze vorige inleiding hebben aangemaakt. Deze methode laten ons een nieuw element toevoegen aan ons lijstmodel. We leveren het met een object (aangegeven door accolades {}
) dat de relevante eigenschappen heeft voor ons aftellen (naam, beschrijving en een plaatshouder datum).

Elke keer dat we op onze knop "Aftellen toevoegen" rechtsboven klikken, wordt onze aangepaste aftelling toegevoegd

Mobiele versie
Globale schuiflade
The next component is a Kirigami.GlobalDrawer. It shows up as a hamburger menu. By default it opens a sidebar, which is especially useful on mobile, as the user can just swipe in a side of the screen to open it. Global drawers are useful for global navigation and actions. We are going to create a simple global drawer that includes a "quit" button.
Kirigami.ApplicationWindow {
id: root
// Andere venstereigenschappen...
globalDrawer: Kirigami.GlobalDrawer {
isMenu: true
actions: [
Kirigami.Action {
text: i18n("Quit")
icon.name: "application-exit-symbolic"
shortcut: StandardKey.Quit
onTriggered: Qt.quit()
}
]
}
// ...
}
Here, we put our global drawer inside our application window. The main property we need to pay attention to is GlobalDrawer.actions, which takes the form of an array of Kirigami.Action components. This action has an appropriate icon and executes the Qt.quit() function when triggered, closing the application.
Since we are keeping our global drawer simple for now, we are setting the GlobalDrawer.isMenu property to true
. This displays our global drawer as a normal application menu, taking up less space than the default global drawer pane.

Globale schuiflade

Globale schuiflade als menu
Tip
De pagina op acties gebaseerde componenten van deze documenten levert verdere details over acties van Kirigami en hoe ze gebruikt kunnen worden.De context van acties
Kirigami components are designed in such a way that the place where you put Kirigami Actions is relevant. As seen above, if you add actions to a Kirigami.Page, Kirigami.ScrollablePage or any other derivative Page component, they will show up on the right side of the header in desktop mode, and on the bottom in mobile mode.
Similarly, if Kirigami Actions are added to a Kirigami.GlobalDrawer, they will show up in the resulting drawer or menu.
Andere voorbeelden van Kirigami acties die op andere plekken verschijnen afhankelijk van hun oudercomponent zijn:
- Kirigami.ContextDrawer - ContextDrawer tutorial here
- Kirigami.AbstractCard and derivatives - Card tutorial here
- Kirigami.Dialog and derivatives - Dialog tutorial here
- Kirigami.ActionToolBar - ActionToolBar tutorial here
Tussen andere Kirigami-componenten
Onze toepassing (app) tot zover
Main.qml:
|
|