Дії з додавання
Коротке повторення
Досі, нами побудовано просту програму, яка показує картки. Втім, у ній ще не передбачено способу додавання нових карток до панелі перегляду карток.
У цій частині підручника ми розглянемо дії Kirigami. Ці дії допоможуть нам додати інтерактивності нашій програмі у сумісний, швидкий і доступний спосіб.
Дії
Дія Kirigami.Action є контейнером для дії з інтерфейсом користувача. Діями можна скористатися для надання нашій програмі легкодоступних дій, які є критичними для виконання нею функціональних можливостей.
Якщо ви раніше користувалися програмами Kirigami, ви напевне взаємодіяли із діями Kirigami. На цьому зображенні ми можемо бачити кнопки дій праворуч від заголовка сторінки із різноманітними піктограмами. Дії Kirigami може бути показано у декілька способів. Вони можуть виконувати широкий діапазон завдань.


Додавання відліків
Програма із зворотним відліком буде непотрібною без можливості додавання зворотних відліків. Давайте створимо дію, яка надасть нам змогу додавати зворотні відліки.
pageStack.initialPage: Kirigami.ScrollablePage {
// Інші властивості сторінки…
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
})
}
]
// ...
}Ми розташовуємо нашу Kirigami.Action на нашій основній сторінці з попередніх підручників. Якщо нам потрібно, ми можемо додати інші кнопки дій на нашій сторінці (і навіть вкласти дії у інші дії!).
Дужки [], які використано вище, є подібними до дужок масивів JavaScript, що означає, що ви можете передати їм одну або декілька речей, відокремлених комами:
// Загальний масив компонентів JavaScript:
variable: [ component1, component2 ]
// Передавання масиву дій Kirigami до QML:
actions: [ Kirigami.Action {}, Kirigami.Action {} ]Із властивостями id і text ми вже познайомилися у попередніх розділах підручника. Втім, нас має зацікавити нова властивість Action.icon: це об'єкт із декількома властивостями, за допомогою якого можна показувати певні піктограми для наших дій. На щастя, щоб скористатися піктограмами KDE достатньо надати назву для властивості піктограми, icon.name.
Перегляд доступних піктограм
Натисніть тут, щоб ознайомитися із тим, як переглянути доступні піктограми у вашій системі
«Навігатор піктограмами» — програма KDE, за допомогою якої ви можете переглянути усі піктограми, якими можна скористатися у вашій програмі. У програмі передбачено декілька корисних можливостей, зокрема попередній перегляд вигляду піктограм у різних встановлених темах, попередній перегляд із різними розмірами тощо. Можливо, програма буде корисною для вас із метою визначення, які піктограми варто використати у вашій програмі.
У багатьох піктограмах KDE використано специфікацію назв піктограм FreeDesktop. Через це, вам також буде корисним звернутися до сайта проєкту FreeDesktop, де наведено список усіх сумісних із різними стільничними середовищами назв піктограм.
Найважливішою є обробник сигналів onTriggered. Вона визначає те, що буде виконано, коли використовуватиметься наша дія. Ви можете зауважити, що у нашому прикладі ми використовуємо метод kountdownModel.append kountdownModel.append, який було створено у попередньому розділі нашого підручника. За допомогою цього методу можна додати новий елемент до нашої моделі списку. Ми надаємо методу об'єкт (позначений фігурними дужками {}), який має відповідні властивості для наших відліків (name, description та замінник date).

Кожного разу, коли ми натискатимемо кнопку «Add kountdown» у верхній правій частині вікна, додаватиметься наш нетиповий відлік.

Мобільна версія
Загальна панель
Наступним компонентом є Kirigami.GlobalDrawer. Він показує меню-гамбургер. Типово, він відкриває бічну панель, яка є особливо корисною на мобільних пристроях, оскільки користувач може просто провести пальцем збоку екрана, щоб відкрити його. Загальні висувні панелі корисні для загальної навігації та кнопок дій. Ми збираємося створити просту загальну висувну панель, на якій буде показано кнопку «Вийти».
Kirigami.ApplicationWindow {
id: root
// Інші властивості вікна…
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.

Загальна панель

Загальна панель як меню
Підказка
Сторінка заснованих на Actions компонентів у розділі «Компоненти» цієї документації містить докладніші відомості щодо дій Kirigami та їхнього використання.Дії є контекстними
Компоненти Kirigami розроблено так, щоб місце, де ви розташуєте кнопки дій Kirigami, було відповідним. Як можна бачити вище, якщо ви додаєте кнопки дій до Kirigami.Page, Kirigami.ScrollablePage або будь-якому іншому похідному від Page компоненті, їх буде показано у правій частині заголовка у режимі робочої станції і у нижній частині сторінки у режимі мобільного пристрою.
Так само, якщо дії Kirigami буде додано до Kirigami.GlobalDrawer, їх буде показано на висувній панелі або у меню.
Інші приклади дій Kirigami, які показано по-різному, залежжжно від їхнього батьківського компонента:
- Kirigami.ContextDrawer — підручник з ContextDrawer тут
- Kirigami.AbstractCard і похідні — підручник з карток тут
- Kirigami.Dialog and derivatives - Dialog tutorial here
- Kirigami.ActionToolBar - підручник з ActionToolBar
Серед інших компонентів Kirigami.
Наша програма на поточний момент
Main.qml:
| |