Сторінки «Про програму» FormCard

Дізнайтеся про те, як створювати сторінки «Про програму» для опису вашої програми.

Додатки Kirigami — це додатковий набір візуальних компонентів, які добре працюють на мобільних пристроях і комп'ютерах і гарантовано є багатоплатформовими. З лаштунками вони використовують Kirigami для створення своїх компонентів.

Деякі з цих компонентів надають змогу показати вашу роботу та роботу інших учасників у вашому проєкті, а також згадати бібліотеки, які використовуються у вашій програмі: Про KDE і AboutPage.

Про KDE

Кожна нова кнопка, яку ми створили на попередньому кроці, має відкривати нову сторінку. Ви можете додати нові сторінки, створивши їх як компоненти , а потім використавши pageStack.layers.push() для кожної кнопки, щоб завантажити цю сторінку до нашого Main.qml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import QtQuick
import QtQuick.Layouts

import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.formcard as FormCard

import org.kde.about 1.0

Kirigami.ApplicationWindow {
    id: root
    width: 600
    height: 700

    Component {
        id: aboutkde
        FormCard.AboutKDE {}
    }

    pageStack.initialPage: Kirigami.ScrollablePage {
        ColumnLayout {
            FormCard.FormCard {
                FormCard.FormButtonDelegate {
                    id: aboutKDEButton
                    icon.name: "kde"
                    text: i18n("About KDE Page")
                    onClicked: root.pageStack.layers.push(aboutkde)
                }

                FormCard.FormButtonDelegate {
                    id: aboutPageButton
                    icon.name: "applications-utilities"
                    text: i18n("About Addons Example")
                }

                FormCard.FormButtonDelegate {
                    id: settingsButton
                    icon.name: "settings-configure"
                    text: i18n("Single Settings Page")
                }
            }
        }
    }
}

Ось і справді! Усе, що потрібно, це створити екземпляр FormCard.AboutKDE. Ви маєте побачити щось подібне після натискання кнопки AboutKDE:

Сторінка «Про програму»

Сторінка AboutPage програми є дещо складнішою, але і нею дуже просто користуватися.

Щоб отримати просту інформаційну сторінку, де використано набір даних KAboutData::setApplicationData(aboutData); у main.cpp, додайте таке до вашого Main.qml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import QtQuick
import QtQuick.Layouts

import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.formcard as FormCard

import org.kde.about 1.0

Kirigami.ApplicationWindow {
    id: root
    width: 600
    height: 700

    Component {
        id: aboutkde
        FormCard.AboutKDE {}
    }

    Component {
        id: aboutpage
        FormCard.AboutPage {}
    }

    pageStack.initialPage: Kirigami.ScrollablePage {
        ColumnLayout {
            FormCard.FormCard {
                FormCard.FormButtonDelegate {
                    id: aboutKDEButton
                    icon.name: "kde"
                    text: i18n("About KDE Page")
                    onClicked: root.pageStack.layers.push(aboutkde)
                }

                FormCard.FormButtonDelegate {
                    id: aboutPageButton
                    icon.name: "applications-utilities"
                    text: i18n("About Addons Example")
                    onClicked: root.pageStack.layers.push(aboutpage)
                }

                FormCard.FormButtonDelegate {
                    id: settingsButton
                    icon.name: "settings-configure"
                    text: i18n("Single Settings Page")
                }
            }
        }
    }
}

Сторінка «Про програму» нашої програми має виглядати так:

Використання JSON замість KAboutData

Замість того, щоб надавати вашій сторінці «Про програму» інформації з KAboutData , можна передати об'єкт JSON безпосередньо. Вам все одно потрібно буде використовувати QApplication::setWindowIcon() у вашому main.cpp, щоб було показано піктограму вашої програми.

Створіть MyAboutPage.qml з таким вмістом:

import org.kde.kirigamiaddons.formcard 1.0 as FormCard
import org.kde.about 1.0

FormCard.AboutPage {
    title: i18nc("@action:button", "About")
    aboutData: {
        "displayName" : "Addons Example",
        "productName" : "",
        "componentName" : "addonsexample",
        "shortDescription" : "This program shows how to use AboutKDE and AboutPage",
        "homepage" : "https://kde.org",
        "bugAddress" : "",
        "version" : "1.0",
        "otherText" : "Optional text shown in the About",
        "authors" : [
            {
                "name" : "John Doe",
                "task" : "Maintainer",
                "emailAddress" : "",
                "webAddress" : "",
                "ocsUsername" : ""
            }
        ],
        "credits" : [],
        "translators" : [],
        "licenses" : [
            {
                "name" : "GPL v3",
                "text" : "Long license text goes here",
                "spdx" : "GPL-3.0"
            }
        ],
        "copyrightStatement" : "© 2023",
        "desktopFileName" : ""
    }

}

І внесіть зміни до Main.qml так, щоб включити до нього нашу нову інформаційну сторінку:

Головний об'єкт JSON містить ключі displayName, productName, homepage тощо. Кожному з ключів authors, credits, translators і licenses можна передати масив об'єктів. Об'єкти, передані до authors, credits і translators, мають однакові ключі, тому їх можна показувати у окремих розділах для кожного, тоді як licenses включає ключі name, text і spdx для кожної доданої ліцензії, оскільки часто той самий проєкт ліцензовано з використанням різних ліцензій.

Ці ключі є необов'язковими, але очікуваною є розумна мінімальна кількість ключів, щоб ваша програма не мала порожніх полів: displayName, version, description, homepage, copyrightStatement і authors. Проте вам рекомендується заповнити якомога більше ключів.