Explications sur les pages

Les pages vous permettent d'organiser le contenu de votre application

Notre application

Dans le tutoriel précédent, nous avons réussi à configurer, construire et compiler notre première application sous Kirigami. Avec les bases en place, nous pouvons commencer notre voyage vers la création d'une application fonctionnement complète.

These tutorials will focus on creating an application that lets the user see how many days are left until an event of their choice. That doesn't mean you shouldn't deviate and try to create your own thing! Just make sure you pay close attention to how things work first, so that you can adjust when things are different in your own code. We also recommend you check out the Kirigami Gallery, which provides a number of useful UI examples and easy access to all the code.

Dans cette section, nous nous concentrerons sur les pages, l'un des éléments structurels clés de toute application avec Kirigami.

Pages

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.

Une seule page sur le téléphone

Deux pages, l'une à côté de l'autre sur le bureau

Revenons au fichier « main.qml » que nous avons créé dans notre précédent tutoriel :

 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.

The idea behind our app is that we're going to be able to display a bunch of countdowns to the user. The problem with a normal Kirigami.Page is that it has a fixed vertical size, but don't worry: Kirigami also supports scrollable pages. Kirigami.ScrollablePage is going to be our main page now.

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

Kirigami pages also feature neat titles placed within the toolbar, quickly indicating to the user which page they are on. All we need to do is to set a page title using the title property of Kirigami.ScrollablePage . In this case, we used one of the i18nc() functions we explored in our previous tutorial to this end.