Explicación de las páginas

Las páginas le permiten organizar el contenido de la aplicación

Nuestra aplicación

En el tutorial anterior hemos configurado, construido y compilado nuestra primera aplicación de Kirigami. Con los conceptos básicos en su lugar, podemos comenzar nuestro viaje hacia la creación de una aplicación repleta de funcionalidad.

Estos tutoriales se centrarán en la creación de una aplicación que permita al usuario ver cuántos días quedan hasta un evento de su elección. ¡Eso no significa que no deba desviarse y tratar de hacer su propia creación! Solo tiene que asegurarse de prestar mucha atención a cómo funcionan las cosas primero, para poder ajustarlas cuando sean diferentes en su propio código. También te recomendamos que consulte la Galería de Kirigami, que proporciona un buen número de útiles ejemplos de interfaces de usuario, así como un cómodo acceso a todo el código fuente.

En esta sección nos centraremos en las páginas, uno de los elementos estructurales clave de cualquier aplicación Kirigami.

Páginas

Kirigami apps are typically organized in Pages . Those are the different "screens" of an app. You will want to have a page dedicated to specific aspects of your app's interaction, and to make things easier you can create different QML files, one for each page.

Pages are organized in a page stack where they can be pushed and popped. On a phone only the top-most page is shown, whereas on a larger screen (desktop or tablet), if desired, multiple pages can be shown next to each other.

Una única página en el teléfono

Dos páginas, una junto a la otra, en el escritorio

Volvamos al archivo main-qml que hemos creado en el anterior tutorial:

 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
// Includes relevant modules used by the QML
import QtQuick 2.15
import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15
import org.kde.kirigami 2.20 as Kirigami

// Provides basic features needed for all kirigami applications
Kirigami.ApplicationWindow {
    // Unique identifier to reference this object
    id: root

    // Window title
    // i18nc() makes a string translatable
    // and provides additional context for the translators
    title: i18nc("@title:window", "Hello World")

    // Set the first page that will be loaded when the app opens
    // This can also be set to an id of a Kirigami.Page
    pageStack.initialPage: Kirigami.Page {
        Controls.Label {
            // Center label horizontally and vertically within parent object
            anchors.centerIn: parent
            text: i18n("Hello World!")
        }
    }
}

We make our application start to our Kirigami.Page . All we have included in it is a label containing "Hello World", but we're going to spruce things up a little.

La idea que hay detrás de nuestra aplicación es la capacidad de poder mostrar un buen número de cuentas atrás al usuario. El problema con una Kirigami.Page normal es que tiene un tamaño vertical fijo. Pero no se preocupe: Kirigami también admite páginas desplazables. Kirigami.ScrollablePage va a ser ahora nuestra página principal.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import QtQuick 2.15
import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15
import org.kde.kirigami 2.20 as Kirigami

Kirigami.ApplicationWindow {
    id: root

    title: i18nc("@title:window", "Day Kountdown")

    pageStack.initialPage: Kirigami.ScrollablePage {
        title: i18nc("@title", "Kountdown")
    }
}

Las páginas de Kirigami también cuentan con títulos claros situados dentro de la barra de herramientas que le indican rápidamente al usuario en qué página se encuentra. Todo lo que tenemos que hacer es definir un título de página usando la propiedad title de [Kirigami.ScrollablePage(docs:kirigami2;ScrollablePage)]. En este caso, usamos una de las funciones i18nc() que exploramos en nuestro tutorial anterior para este fin.