Componentes baseados em ações
Ações
Uma Kirigami.Action consiste em uma ação clicável cuja aparência depende de onde é adicionada. Normalmente, é um botão com um ícone e texto.
Podemos usá-las para fornecer aos nossos aplicativos ações fáceis de alcançar que são essenciais para sua funcionalidade.
Nota
As ações Kirigami herdam de QtQuick.Controls.Action e podem receber atalhos.Assim como as Ações de Controles QtQuick, elas podem ser atribuídas a itens de menu e botões da barra de ferramentas, mas também a vários outros componentes Kirigami.
import org.kde.kirigami as Kirigami
Kirigami.Action {
id: copyAction
text: i18n("Copy")
icon.name: "edit-copy"
shortcut: StandardKey.Copy
onTriggered: {
// ...
}
}Nota
A propriedade icon.name aceita nomes para ícones de todo o sistema, seguindo a especificação do FreeDesktop. Esses ícones e nomes de ícones podem ser visualizados com o aplicativo CuttleFish do KDE, que acompanha o plasma-sdk, ou visitando a especificação de nomenclatura de ícones do FreeDesktop.Uma funcionalidade oferecida pelas ações do Kirigami, além das oferecidas pelas ações do QtQuick, é a possibilidade de aninhar ações.
import org.kde.kirigami as Kirigami
Kirigami.Action {
text: "View"
icon.name: "view-list-icons"
Kirigami.Action {
text: "action 1"
}
Kirigami.Action {
text: "action 2"
}
Kirigami.Action {
text: "action 3"
}
}Outra funcionalidade das ações do Kirigami é fornecer várias dicas aos itens usando ações sobre como eles devem exibir a ação. Essas dicas são tratadas principalmente pelas propriedades displayHint e displayComponent.
Essas propriedades serão respeitadas pelo item, se possível. Por exemplo, a ação a seguir será exibida como um TextField com o item se esforçando ao máximo para se manter visível o máximo possível.
import org.kde.kirigami as Kirigami
Kirigami.Action {
text: "Search"
icon.name: "search"
displayComponent: TextField { }
displayHint: Kirigami.DisplayHints.KeepVisible
}Usando ações em outros componentes
Conforme mencionado no tutorial de introdução às ações, as Ações Kirigami são contextuais, o que significa que aparecem em locais diferentes dependendo de onde você as coloca. Além disso, elas também têm representações diferentes para desktop e dispositivos móveis.
Página
Uma Kirigami.Page mostra ações à direita do cabeçalho superior no modo desktop e no rodapé no modo celular.
| |

Ações de página no desktop

Ações de página em um dispositivo móvel
Gaveta global
A Kirigami.GlobalDrawer é uma barra lateral semelhante a um menu que fornece uma navegação baseada em ações para o seu aplicativo. É aqui que as ações aninhadas são úteis, pois é possível criar uma navegação aninhada:
import org.kde.kirigami as Kirigami
Kirigami.ApplicationWindow {
title: "Actions Demo"
globalDrawer: Kirigami.GlobalDrawer {
title: "Demo"
titleIcon: "applications-graphics"
actions: [
Kirigami.Action {
text: "View"
icon.name: "view-list-icons"
Kirigami.Action {
text: "View Action 1"
onTriggered: showPassiveNotification("View Action 1 clicked")
}
Kirigami.Action {
text: "View Action 2"
onTriggered: showPassiveNotification("View Action 2 clicked")
}
},
Kirigami.Action {
text: "Action 1"
onTriggered: showPassiveNotification("Action 1 clicked")
},
Kirigami.Action {
text: "Action 2"
onTriggered: showPassiveNotification("Action 2 clicked")
}
]
}
//...
}
Ações da gaveta global no desktop
Você pode ler mais sobre Gavetas Globais na página de documentação para gavetas.
Gaveta de contexto
Uma Kirigami.ContextDrawer consiste em um conjunto adicional de ações que ficam ocultas atrás de um menu de três pontos no canto superior direito no modo desktop ou no canto inferior direito no modo celular se não houver espaço. Ela é usada para exibir ações relevantes apenas para uma página específica. Você pode ler mais sobre elas em nosso tutorial Gavetas do Kirigami.


ActionTextFields
Um Kirigami.ActionTextField é usado para adicionar algumas ações contextuais a um campo de texto, por exemplo, para limpar o texto ou para pesquisar o texto.
Kirigami.ActionTextField {
id: searchField
rightActions: [
Kirigami.Action {
icon.name: "edit-clear"
visible: searchField.text !== ""
onTriggered: {
searchField.text = ""
searchField.accepted()
}
}
]
}Neste exemplo, estamos criando um botão "limpar" para um campo de pesquisa que só fica visível quando o texto é inserido.

Nota
Você raramente deve usar um ActionTextField diretamente. SearchField e PasswordField herdam de ActionTextField e provavelmente cobrirão o caso de uso desejado.SwipeListItem
Um Kirigami.SwipeListItem é um delegado destinado a oferecer suporte a ações extras. Ao usar um mouse, suas ações serão sempre exibidas. Em um dispositivo de toque, elas podem ser exibidas arrastando o item com a alça. Nas imagens a seguir, são os ícones à direita.
ListView {
model: myModel
delegate: SwipeListItem {
Controls.Label {
text: model.text
}
actions: [
Action {
icon.name: "document-decrypt"
onTriggered: print("Action 1 clicked")
},
Action {
icon.name: model.action2Icon
onTriggered: //faz alguma coisa
}
]
}
}
SwipeListItem em um computador

SwipeListItem em um dispositivo móvel
ActionToolBar
Uma Kirigami.ActionToolBar é uma barra de ferramentas construída a partir de uma lista de ações. Por padrão, cada ação que cabe na barra de ferramentas será representada por um ToolButton, com aquelas que não couberem sendo movidas para um menu no final da barra de ferramentas.
Assim como ActionTextField, você pode não precisar usar ActionToolBar diretamente, pois ela é usada por cabeçalhos de página e cartões para fornecer sua exibição de ação.
import org.kde.kirigami as Kirigami
Kirigami.ApplicationWindow {
title: "Actions Demo"
width: 350
height: 350
header: Kirigami.ActionToolBar {
actions: [
Kirigami.Action {
text: i18n("View Action 1")
onTriggered: showPassiveNotification(i18n("View Action 1 clicked"))
},
Kirigami.Action {
text: i18n("View Action 2")
onTriggered: showPassiveNotification(i18n("View Action 2 clicked"))
},
Kirigami.Action {
text: i18n("Action 1")
onTriggered: showPassiveNotification(i18n("Action 1 clicked"))
},
Kirigami.Action {
text: i18n("Action 2")
onTriggered: showPassiveNotification(i18n("Action 2 clicked"))
}
]
}
}
Uma barra de ferramentas horizontal sendo exibida na parte superior do aplicativo
Você pode ler mais sobre os componentes ActionToolBar em sua página de documentação dedicada.
Cartões
Um Kirigami.Card é usado para exibir uma coleção de informações ou ações em conjunto. Essas ações podem ser adicionadas ao grupo ações, de forma semelhante aos componentes anteriores.
Kirigami.Card {
actions: [
Kirigami.Action {
text: qsTr("Action1")
icon.name: "add-placemark"
},
Kirigami.Action {
text: qsTr("Action2")
icon.name: "address-book-new-symbolic"
},
// ...
]
banner {
source: "../banner.jpg"
title: "Title Alignment"
titleAlignment: Qt.AlignLeft | Qt.AlignBottom
}
contentItem: Controls.Label {
wrapMode: Text.WordWrap
text: "My Text"
}
}
Para mais informações consulte a página de componentes para Cards.