Skip to main content
Ir para o conteúdo

Páginas Sobre no FormCard

Aprenda a criar páginas Sobre para dar crédito ao seu aplicativo.

Os Addons do Kirigami é um conjunto adicional de componentes visuais que funcionam bem em dispositivos móveis e desktops, com garantia de compatibilidade entre plataformas. Ele utiliza Kirigami internamente para criar seus componentes.

Alguns desses componentes permitem que você dê crédito ao seu trabalho e ao trabalho de outros colaboradores do seu projeto, além de mencionar os frameworks usados em seu aplicativo: [AboutKDE](https://api.kde.org/frameworks/kirigami-addons /html/classAboutKDE.html) e AboutPage.

Sobre o KDE

Cada novo botão que criamos na etapa anterior deve abrir uma nova página. Você pode adicionar novas páginas instanciando-as como Components e, em seguida, usando pageStack.layers.push() para cada botão para carregar essa página em nosso 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")
                }
            }
        }
    }
}

É isso mesmo! Basta instanciar FormCard.AboutKDE. Você deverá ver algo assim após clicar no botão AboutKDE:

Página Sobre

O AboutPage do aplicativo é um pouco mais complexo, mas ainda é muito simples de usar.

Para uma página Sobre simples que usa o conjunto de dados definido por KAboutData::setApplicationData(aboutData); em main.cpp, adicione o seguinte ao seu 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")
                }
            }
        }
    }
}

A página Sobre do nosso aplicativo deve ser semelhante a esta:

Usando JSON em vez de KAboutData

Em vez de permitir que sua página "Sobre" obtenha informações de KAboutData, é possível passar um objeto JSON diretamente. Você ainda precisará usar QApplication::setWindowIcon() no seu main.cpp para que o ícone do seu aplicativo seja exibido.

Crie um MyAboutPage.qml como este:

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

}

E então ajuste seu Main.qml para incluir sua nova página Sobre:

O objeto JSON principal aqui contém as chaves displayName, productName, homepage e assim por diante. As chaves authors, credits, translators e licenses podem receber, cada uma, um array de objetos. Os objetos passados ​​para authors, credits e translators compartilham as mesmas chaves, de modo que podem ser exibidos cada um em sua própria seção, enquanto licenses inclui as chaves name, text e spdx para cada licença adicionada, pois não é incomum que o mesmo projeto inclua várias licenças.

Essas chaves são opcionais, mas espera-se um número mínimo razoável de chaves para que seu aplicativo não tenha campos vazios: displayName, version, description, homepage, copyrightStatement e authors. No entanto, recomendamos que você preencha o máximo de chaves possível.