FormCard over pagina's

Leer het aanmaken van pagina's Info over om waardering in uw toepassing aan te geven.

Kirigami-aanvullingen is een additionele set van visuele componenten die goed werken op een mobiel en bureaublad en gegarandeerd cross-platform zijn. Het gebruikt Kirigami onder de motorkap om zijn componenten aan te maken.

Sommige van die componenten bieden u om dankbetuigingen voor uw werk en het werk van anderen die hebben bijgedragen aan uw project, evenals het noemen van de frameworks die in uw toepassing worden gebruikt: AboutKDE en AboutPage.

Over KDE

Elke nieuwe knop die we hebben gemaakt in de vorige stap zou een nieuwe pagina openen. U kunt nieuwe pagina's toevoegen door ze als Componenten aan te maken en daarna pageStack.layers.push() voor elke knop te gebruiken om die pagina in onze Main.qml te gebruiken:

 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")
                }
            }
        }
    }
}

Dat is het helemaal! Al wat er gedaan moet worden is een exemplaar maken van FormCard.AboutKDE. U zou iets moeten zien als dit na klikken op de knop AboutKDE:

Pagina Info over

De AboutPage van de toepassing is iets complexer, maar het is nog steeds erg eenvoudig te gebruiken.

Voor een eenvoudige pagina Info over die de gegevens gebruikt ingesteld door KAboutData::setApplicationData(aboutData); in main.cpp voeg het volgende toe aan uw 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")
                }
            }
        }
    }
}

De pagina Info over van uw toepassing zou er als volgt uit moeten zien:

JSON gebruiken in plaats van KAboutData

In plaats van dat uw pagina about informatie krijgt uit KAboutData, is het mogelijk om een JSON-object direct door te geven. U zult nog steeds QApplication::setWindowIcon() in uw main.cpp moeten gebruiken om in uw toepassing het pictogram te laten tonen.

Maak en MyAboutPage.qml zoals deze:

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" : ""
    }

}

En pas uw Main.qml aan om onze nieuwe pagina About-pagina in te voegen:

Het hoofd JSON-object hier bevat de sleutels displayName, productName, homepage enzovoort. De sleutels authors, credits, translators en licenses kunnen elk doorgeven worden als een array van objecten. De doorgeven objecten aan authors, credits en translators delen dezelfde sleutels zodat ze getoond kunnen worden elk in hun eigen sectie, terwijl licenses de sleutels name, text en spdx voor elke toegevoegde licentie bevat, omdat het niet ongewoon is voor hetzelfde project om meerdere licenties te bevatten.

Deze sleutels zijn optioneel, maar een redelijke minimale hoeveelheid sleutels wordt verwacht om te zorgen dat uw toepassing geen lege velden heeft: displayName, version, description, homepage, copyrightStatement en authors. U wordt echter aangemoedigd om zoveel sleutels als mogelijk in te vullen.