FormCard Pri paĝoj
Kirigami Addons estas plia aro de vidaj komponantoj, kiuj bone funkcias ĉe poŝtelefono kaj labortablo kaj estas garantiitaj esti transplatformaj. Ĝi uzas Kirigami sub la kapuĉo por krei siajn komponentojn.
Kelkaj el tiuj komponantoj permesas vin krediti vian laboron kaj la laboron de aliaj kontribuantoj en via projekto, kaj ankaŭ mencii la kadrojn uzatajn en via aplikaĵo: [Pri KDE](https://api.kde.org/frameworks/kirigami- addons/html/classAboutKDE.html) kaj AboutPage.
Pri KDE
Ĉiu nova butono, kiun ni kreis en la antaŭa paŝo, devus malfermi novan paĝon. Vi povas aldoni novajn paĝojn kreante ilin kiel
Components
kaj poste uzante pageStack.layers.push()
por ĉiu butono por ŝargi tiun paĝon en nia main.qml
:
|
|
Tio estas vere! Necesas nur instantiigi FormCard.Pri KDE
. Vi devus vidi ion tian post klakado de la butono Pri KDE:
Pri Paĝo
La AboutPage de la aplikaĵo estas iomete pli kompleksa, sed ĝi estas ankoraŭ tre simpla uzi. Ni aldonos novan QML-dosieron, kiu enhavos la informojn necesajn por nia pri paĝo. Unue en nia dosiero 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>
Kaj nia contents/ui/MyAboutPage.qml
devus havi la jenon:
import org.kde.kirigamiaddons.formcard 1.0 as FormCard
import org.kde.about 1.0
FormCard.AboutPage {
aboutData: About
}
Ĉi tie ni uzas la informojn, kiujn ni starigis uzante
KAboutData
en nia main.cpp
. Jen mallonga memorigilo pri tio, kio estas en main.cpp
:
qmlRegisterSingletonType(
"org.kde.about", // <========== uzata en la importo
1, 0, "About", // <========== C++-objekto eksportita kiel QML-tipo
[](QQmlEngine *engine, QJSEngine *) -> QJSValue {
return engine->toScriptValue(KAboutData::applicationData());
}
);
La objekto Pri
, kiun ni eksportis al la QML-flanko uzante
qmlRegisterSingletonType()
enhavas la datumojn de
KAboutData::applicationData()
, kaj tion ni transdonas al la propreco aboutData
.
Finfine, ni aldonas nian novan MyAboutPage al nia main.qml
:
|
|
La paĝo Pri de nia aplikaĵo devus aspekti jene:
Uzante JSON anstataŭ KAboutData
Se vi scivolis, kial la paĝo Pri estis konservita aparta anstataŭ enigita en main.qml
, tio estas ĉar ĝi permesas agordi laŭmendan modelon por la propreco aboutData
.
Anstataŭ lasi vian pri paĝo ricevi informojn de
KAboutData
, eblas rekte transdoni JSON-objekton. Vi ankoraŭ bezonos uzi
QApplication::setWindowIcon()
en via main.cpp
por ke via aplikaĵa piktogramo aperu.
Ŝanĝu vian `MyAboutPage.json' al io tia:
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" : ""
}
}
La ĉefa JSON-objekto ĉi tie enhavas la ŝlosilojn displayName
, productName
, hejmpaĝo
ktp. La ŝlosiloj aŭtoroj
, kreditoj
, tradukistoj
kaj licencoj
povas ĉiu esti pasita tabelo da objektoj. La objektoj transdonitaj al "aŭtoroj", "kreditoj" kaj "tradukistoj" dividas la samajn ŝlosilojn por ke ili povu esti montritaj ĉiu en sia propra sekcio, dum "licencoj" inkluzivas la ŝlosilojn "nomo", "teksto" kaj "spdx" por ĉiu permesilo aldonita, ĉar ne malofte la sama projekto inkluzivas plurajn permesilojn.
Ĉi tiuj ŝlosiloj estas laŭvolaj, sed akceptebla minimuma kvanto da ŝlosiloj estas atendita por ke via aplikaĵo ne havu malplenajn kampojn: displayName
, version
, priskribo
, hejmpaĝo
, kopyrightStatement
kaj aŭtoroj
. Vi estas kuraĝigita plenigi kiel eble plej multajn ŝlosilojn.