Дії з додавання
Коротке повторення
Досі, нами побудовано просту програму, яка показує картки. Втім, у ній ще не передбачено способу додавання нових карток до панелі перегляду карток.
У цій частині підручника ми розглянемо дії 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
.
Перегляд доступних піктограм
Натисніть тут, щоб ознайомитися із тим, як переглянути доступні піктограми у вашій системі
Cuttlefish — програма KDE, за допомогою якої ви можете переглянути усі піктограми, якими можна скористатися у вашій програмі. У програмі передбачено декілька корисних можливостей, зокрема попередній перегляд вигляду піктограм у різних встановлених темах, попередній перегляд із різними розмірами тощо. Можливо, програма буде корисною для вас із метою визначення, які піктограми варто використати у вашій програмі.
У багатьох піктограмах KDE використано специфікацію назв піктограм FreeDesktop. Через це, вам також буде корисним звернутися до сайта проєкту FreeDesktop, де наведено список усіх сумісних із різними стільничними середовищами назв піктограм.
Найважливішою є обробник сигналів onTriggered. Вона визначає те, що буде виконано, коли використовуватиметься наша дія. Ви можете зауважити, що у нашому прикладі ми використовуємо метод kountdownModel.append
kountdownModel.append, який було створено у попередньому розділі нашого підручника. За допомогою цього методу можна додати новий елемент до нашої моделі списку. Ми надаємо методу об'єкт (позначений фігурними дужками {}
), який має відповідні властивості для наших відліків (name
, description
та замінник date
).
Загальна панель
Наступним компонентом є 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()
}
]
}
// ...
}
Тут ми розмістили нашу загальну висувну панель у нашому вікні програми. Головною властивістю, якій ми маємо приділити увагу, є GlobalDrawer.actions. Ця властивість приймає значення масиву компонентів Kirigami.Action. Ця дія має відповідну піктограму і запускає функцію Qt.quit(), яка завершує роботу програми.
Оскільки ми поки зберігаємо простоту нашої загальної висувної панелі, ми встановлюємо для GlobalDrawer.isMenu значення true. У результаті нашу загальну висувну панель буде показано як звичайне меню програми, яке займатиме менше місця за типову загальну висувну панель.
Підказка
Сторінка заснованих на Actions компонентів у розділі «Компоненти» цієї документації містить докладніші відомості щодо дій Kirigami та їхнього використання.Дії є контекстними
Компоненти Kirigami розроблено так, щоб місце, де ви розташуєте кнопки дій Kirigami, було відповідним. Як можна бачити вище, якщо ви додаєте кнопки дій до Kirigami.Page, Kirigami.ScrollablePage або будь-якому іншому похідному від Page компоненті, їх буде показано у правій частині заголовка у режимі робочої станції і у нижній частині сторінки у режимі мобільного пристрою.
Так само, якщо дії Kirigami буде додано до Kirigami.GlobalDrawer, їх буде показано на висувній панелі або у меню.
Інші приклади дій Kirigami, які показано по-різному, залежжжно від їхнього батьківського компонента:
- Kirigami.ContextDrawer — підручник з ContextDrawer тут
- Kirigami.AbstractCard і похідні — підручник з карток тут
- Kirigami.Dialog і похідні — підручник з Dialog тут
- Kirigami.ActionToolBar - підручник з ActionToolBar
Серед інших компонентів Kirigami.
Наша програма на поточний момент
Main.qml:
|
|