Pàgines FormCard «Quant al»
Els complements del Kirigami són un conjunt addicional de components visuals que funcionen bé en el mòbil i l'escriptori i es garanteix que són multiplataforma. Utilitzen el Kirigami per sota per a crear els seus components.
Alguns d'aquests components us permeten acreditar el vostre treball i el treball d'altres col·laboradors en el projecte, així com esmentar els marcs de treball que s'utilitzen a l'aplicació: AboutKDE i AboutPage.
Quant al KDE
Cada botó nou que hem creat en el pas anterior hauria d'obrir una pàgina nova. Podeu afegir pàgines noves instanciant-les com a
Components
i després utilitzant pageStack.layers.push()
per a cada botó per a carregar aquesta pàgina en el main.qml
:
|
|
Això és realment! Tot el que cal és instanciar FormCard.AboutKDE
. Hauríeu de veure una cosa així després de fer clic al botó AboutKDE:
Pàgina «Quant al»
L'AboutPage de l'aplicació és una mica més complexa, però encara és molt senzilla d'utilitzar. Afegirem un fitxer nou en QML que contindrà la informació necessària per a la nostra pàgina «Quant al». Primer al nostre fitxer resources.qrc
:
<RCC version="1.0">
<qresource prefix="/">
<file alias="main.qml">contents/ui/main.qml</file>
<file alias="MyAboutPage.qml">contents/ui/MyAboutPage.qml</file>
</qresource>
</RCC>
I el contents/ui/MyAboutPage.qml
hauria de tenir el següent:
import org.kde.kirigamiaddons.formcard 1.0 as FormCard
import org.kde.about 1.0
FormCard.AboutPage {
aboutData: About
}
Aquí utilitzem la informació que hem establert utilitzant
KAboutData
en el nostre main.cpp
. Aquí hi ha un breu recordatori de què hi ha a main.cpp
:
qmlRegisterSingletonType(
"org.kde.about", // <========== utilitzat en la importació
1, 0, "About", // <========== Objecte C++ exportat com a un tipus de QML
[](QQmlEngine *engine, QJSEngine *) -> QJSValue {
return engine->toScriptValue(KAboutData::applicationData());
}
);
L'objecte About
que exportem a la part del QML utilitzant
qmlRegisterSingletonType()
conté les dades de
KAboutData::applicationData()
, i això és el que passem a la propietat aboutData
.
Finalment, afegim la MyAboutPage nova al main.qml
:
|
|
La pàgina «Quant al» de la nostra aplicació s'hauria de veure així:
Ús del JSON en lloc del KAboutData
Si us pregunteu per què la pàgina «Quant al» es va mantenir separada en lloc d'incrustada a main.qml
, això és perquè permet establir un model personalitzat per a la propietat aboutData
.
En lloc de permetre que la pàgina «Quant al» rebi informació de
KAboutData
, és possible passar directament un objecte JSON. Encara haureu d'utilitzar
QApplication::setWindowIcon()
en el vostre main.cpp
perquè es mostri la icona de l'aplicació.
Canvieu el MyAboutPage.json
a alguna cosa així:
import org.kde.kirigamiaddons.formcard 1.0 as FormCard
import org.kde.about 1.0
FormCard.AboutPage {
title: i18n("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" : ""
}
}
L'objecte JSON principal conté les claus displayName
, productName
, homepage
i així successivament. Les claus authors
, credits
, translators
i licenses
se'ls hi poden passar una matriu d'objectes. Els objectes passats a authors
, credits
i translators
comparteixen les mateixes claus perquè es puguin mostrar cadascuna en la seva pròpia secció, mentre que licenses
inclou les claus name
, text
i spdx
per a cada llicència afegida, ja que no és estrany que el mateix projecte inclogui diverses llicències.
Aquestes claus són opcionals, però s'espera que una quantitat mínima raonable de claus faci que la vostra aplicació no tingui camps buits: displayName
, version
, description
, homepage
, copyrightStatement
i authors
. No obstant això, se us anima a omplir tantes claus com sigui possible.