Adicionando ações
Recapitulação
Até agora, criamos um aplicativo simples que pode exibir cartões. No entanto, atualmente não há como o usuário adicionar novos cartões à visualização de cartões.
Neste tutorial, veremos as ações do Kirigami. Elas nos ajudarão a adicionar interatividade ao nosso aplicativo de forma consistente, rápida e acessível.
Ações
Uma Kirigami.Action encapsula uma ação de interface do usuário. Podemos usá-la para fornecer aos nossos aplicativos ações fáceis de alcançar, essenciais para sua funcionalidade.
Se você já usou aplicativos Kirigami, certamente já interagiu com ações Kirigami. Nesta imagem, podemos ver ações à direita do título da página com vários ícones. As ações Kirigami podem ser exibidas de diversas maneiras e podem realizar uma ampla variedade de ações.


Adicionando contagem regressiva
Um aplicativo de contagem regressiva é praticamente inútil sem a capacidade de adicionar contagens regressivas. Vamos criar uma ação que nos permita fazer isso.
pageStack.initialPage: Kirigami.ScrollablePage {
// Outras propriedades da 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
})
}
]
// ...
}Estamos colocando nosso Kirigami.Action dentro da nossa página principal dos tutoriais anteriores. Se quiséssemos, poderíamos adicionar mais ações à nossa página (e até mesmo aninhar ações dentro de ações!).
Os colchetes [] usados acima são semelhantes aos arrays JavaScript, o que significa que você pode passar uma ou mais coisas para eles, separadas por vírgula:
// Array de componentes JavaScript:
variable: [ component1, component2 ]
// Passando uma série de ações Kirigami para QML:
actions: [ Kirigami.Action {}, Kirigami.Action {} ]As propriedades id e text devem ser familiares de tutoriais anteriores. No entanto, a propriedade herdada Action.icon deve ser interessante: é um objeto com diversas propriedades que permitem exibir determinados ícones para suas ações. Felizmente, para usar os ícones do KDE, tudo o que precisamos fazer é fornecer a propriedade name para a propriedade do ícone, icon.name.
Vendo os ícones disponíveis
O explorador de ícones é um aplicativo do KDE que permite visualizar todos os ícones que você pode usar no seu aplicativo. Ele oferece diversos recursos úteis, como visualizações da aparência em diferentes temas instalados, visualizações em diferentes tamanhos e muito mais. Você pode considerá-lo uma ferramenta útil ao decidir quais ícones usar no seu aplicativo.
Muitos dos ícones do KDE seguem a especificação de nomenclatura de ícones do FreeDesktop. Portanto, você também pode achar útil consultar o site do projeto FreeDesktop, que lista todos os nomes de ícones compatíveis com vários desktops.
O manipulador de sinais onTriggered é o mais importante. É isso que nossa ação fará quando for usada. Você notará que, em nosso exemplo, estamos usando o método kountdownModel.append do kountdownModel que criamos em nosso tutorial anterior. Este método nos permite adicionar um novo elemento ao nosso modelo de lista. Estamos fornecendo a ele um objeto (indicado por chaves {}) que possui as propriedades relevantes para nossas contagens regressivas (name, description e um espaço reservado date).

Cada vez que clicamos no botão "Adicionar contagem regressiva" no canto superior direito, nossa contagem regressiva personalizada é adicionada

Versão para dispositivos móveis
Gaveta global
O próximo componente é uma Kirigami.GlobalDrawer. Ela aparece como um menu de hambúrguer. Por padrão, ela abre uma barra lateral, o que é especialmente útil em dispositivos móveis, pois o usuário pode simplesmente deslizar um lado da tela para abri-la. Gavetas globais são úteis para navegação e ações globais. Vamos criar uma gaveta global simples que inclui um botão "sair".
Kirigami.ApplicationWindow {
id: root
// Outras propriedades da janela...
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.

Gaveta global

Gaveta global como um menu
Dica
A página Componentes baseados em ações desta documentação fornece mais detalhes sobre as ações do Kirigami e como elas podem ser usadas.Ações são contextuais
Os componentes Kirigami são projetados de forma que o local onde você insere as ações do Kirigami seja relevante. Como visto acima, se você adicionar ações a uma Kirigami.Page, Kirigami.ScrollablePage ou qualquer outro componente derivado de Página, elas serão exibidas no lado direito do cabeçalho no modo desktop e na parte inferior no modo de dispositivos móveis.
Da mesma forma, se as ações do Kirigami forem adicionadas a um Kirigami.GlobalDrawer, elas aparecerão na gaveta ou menu resultante.
Outros exemplos de ações do Kirigami que aparecem de forma diferente dependendo do seu componente pai são:
- Kirigami.ContextDrawer - Tutorial do ContextDrawer aqui
- Kirigami.AbstractCard de derivados - Tutorial de cartão aqui
- Kirigami.Dialog and derivatives - Dialog tutorial here
- Kirigami.ActionToolBar - Tutorial de ActionToolBar aqui
Entre outros componentes do Kirigami.
Nosso aplicativo até agora
Main.qml:
| |