Afegir accions
Recapitulació
Fins ara, hem construït una aplicació senzilla que pot mostrar targetes. No obstant això, encara no hi ha cap manera que l'usuari afegeixi targetes noves a la vista de targetes.
En aquesta guia d'aprenentatge, veurem les accions de Kirigami. Aquestes ens ajudaran a afegir interactivitat a la nostra aplicació d'una manera coherent, ràpida i accessible.
Accions
Una Kirigami.Action encapsula una acció de la interfície d'usuari. Podem utilitzar-les per a proporcionar a les nostres aplicacions accions de fàcil accés que són essencials per a la seva funcionalitat.
Si heu emprat abans les aplicacions escrites en Kirigami, certament heu interactuat amb les accions del Kirigami. En aquesta imatge, podem veure les accions a la dreta del títol de la pàgina amb diverses icones. Les accions del Kirigami es poden mostrar de diverses maneres i poden realitzar una àmplia varietat de coses.
Afegir comptes enrere
Una aplicació de compte enrere és força inútil sense la capacitat d'afegir-ne. Crearem una acció que ens permeti fer-ho.
pageStack.initialPage: Kirigami.ScrollablePage {
// Altres propietats de la pàgina...
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
})
}
]
// ...
}
Estem col·locant la nostra Kirigami.Action dins de la nostra pàgina principal a partir de les guies d'aprenentatge anteriors. Si volguéssim, podríem afegir més accions a la nostra pàgina (i fins i tot niar accions dins d'accions!).
Els claudàtors []
, que s'han utilitzat anteriorment són similars a les matrius de JavaScript, el qual vol dir que podeu passar-hi una o més coses, separades per comes:
// Matriu general de components JavaScript:
variable: [ component1, component2 ]
// Passar una matriu d'accions del Kirigami al QML:
actions: [ Kirigami.Action {}, Kirigami.Action {} ]
Les propietats id
i text
haurien de ser familiars de guies d'aprenentatge anteriors. No obstant això, la propietat nova heretada Action.icon hauria de ser interessant: és un objecte amb diverses propietats que permet mostrar certes icones per a les vostres accions. Afortunadament, per a utilitzar les icones del KDE, tot el que hem de fer és proporcionar el nom de la propietat per a la propietat d'icona, icon.name
.
Visualització de les icones disponibles
Feu clic aquí per a veure com comprovar les icones disponibles al sistema
El Cuttlefish és una aplicació KDE que permet veure totes les icones que podreu utilitzar per a la vostra aplicació. Ofereix una sèrie de característiques útils: com vistes prèvies de la seva aparença en els diferents temes instal·lats, vistes prèvies en mides diferents i més. Potser us resultarà una eina útil a l'hora de decidir quines icones emprar en la vostra aplicació.
Moltes de les icones del KDE segueixen l'especificació d'anomenat d'icones de FreeDesktop. Per tant, també pot resultar útil consultar el lloc web del projecte FreeDesktop, el qual llista tots els noms d'icones compatibles amb tots els escriptoris.
El controlador de senyals onTriggered és el més important. És el que farà la nostra acció quan s'utilitzi. Notareu que en el nostre exemple fem servir el mètode kountdownModel.append del kountdownModel
que hem creat en la nostra guia d'aprenentatge anterior. Aquest mètode ens permet afegir un element nou al nostre model de llista. Proporcionem un objecte (indicat per les claus {}
) que té les propietats rellevants per als nostres comptes enrere (name
, description
i una date
de marcador de posició).
Calaix global
El component següent és un Kirigami.GlobalDrawer. Es mostra com un menú d'hamburguesa. De manera predeterminada obre una barra lateral, que és especialment útil en el mòbil, ja que l'usuari pot lliscar en un costat de la pantalla per a obrir-la. Els calaixos globals són útils per a la navegació i les accions globals. Crearem un calaix global senzill que inclou un botó «quit».
Kirigami.ApplicationWindow {
id: root
// Altres propietats de les finestres...
globalDrawer: Kirigami.GlobalDrawer {
isMenu: true
actions: [
Kirigami.Action {
text: i18n("Quit")
icon.name: "application-exit-symbolic"
shortcut: StandardKey.Quit
onTriggered: Qt.quit()
}
]
}
// ...
}
Aquí, col·locarem el nostre calaix global dins de la finestra de la nostra aplicació. La propietat principal a la qual hem de parar atenció és GlobalDrawer.actions, que pren la forma d'una matriu de components Kirigami.Action. Aquesta acció té una icona adequada i executa la funció Qt.quit() quan s'activa, tancant l'aplicació.
Atès que, per ara, mantenim senzill el nostre calaix global, establim la propietat GlobalDrawer.isMenu a true
. Això mostrarà el nostre calaix global com un menú normal d'aplicació, ocupant menys espai que la subfinestra predeterminada del calaix global.
Consell
La pàgina components basats en Actions d'aquesta documentació, proporciona més detalls sobre les accions del Kirigami i com es poden utilitzar.Les accions són contextuals
Els components del Kirigami estan dissenyats de tal manera que el lloc on poseu les accions del Kirigami és rellevant. Com s'ha vist anteriorment, si afegiu accions a una Kirigami.Page, Kirigami.ScrollablePage o qualsevol altre component derivat de pàgina, es mostraran a la part dreta de la capçalera en el mode d'escriptori i a la part inferior en el mode de mòbil.
De manera similar, si les accions del Kirigami s'afegeixen a un Kirigami.GlobalDrawer, es mostraran al calaix o menú resultant.
Altres exemples d'accions del Kirigami que es mostren de manera diferent depenent del seu component pare són:
- Kirigami.ContextDrawer - Aquí hi ha una guia d'aprenentatge de ContextDrawer
- Kirigami.AbstractCard i derivats - Aquí hi ha una guia d'aprenentatge de Card
- Kirigami.Dialog i derivats - Aquí hi ha una guia d'aprenentatge de Dialog
- Kirigami.ActionToolBar - Aquí hi ha una guia d'aprenentatge d'ActionToolBar
Entre altres components del Kirigami.
La nostra aplicació fins ara
Main.qml:
|
|