IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Jiyuu

[Actualité] Utilisation des fichiers de configuration en QML, en se servant du composant Settings

Noter ce billet
par , 20/10/2015 à 21h59 (3965 Affichages)


Le développement d'un programme ou d'une application nécessite parfois l'utilisation de fichiers de configuration. L'API de QML offre un composant permettant de faire ceci très simplement. Il s'agit de Settings. Son utilisation est tellement simple qu'au début j'ai eu du mal à y croire. Je vous propose ici une petite présentation de celui-ci.


Avant toute chose, commencez par créer un projet en C++ ou en Python lançant une application QML. Pour le bon déroulement de la lecture de ce billet, voici le code que j'utiliserai :

Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <QGuiApplication>
#include <QQmlApplicationEngine>
 
int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
 
    app.setOrganizationName("JiyuuOnDVP");
    app.setApplicationName("TestSettings");
 
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
 
    return app.exec();
}

Les lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
app.setOrganizationName("JiyuuOnDVP");
app.setApplicationName("TestSettings");
vont vous permettre de choisir l'emplacement et le nom de votre fichier de configuration.
Ici, notre fichier portera le nom de TestSettings qui sera stocké dans le dossier JiyuuOnDVP lui-même présent dans le dossier de configuration par défaut de votre OS.
Si comme moi vous utilisez un OS basé sur Linux avec KDE 5, ce dossier correspond au dossier .config de votre home


Son équivalent Python
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys, os
 
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine
 
 
if __name__ == '__main__':
 
    app = QGuiApplication(sys.argv)
    engine = QQmlApplicationEngine()
 
    app.setOrganizationName("JiyuuOnDVP");
    app.setApplicationName("TestSettings");
 
 
    context = engine.rootContext()
    engine.load('./main.qml')
    sys.exit(app.exec_())


Rentrons maintenant dans le vif du sujet. Le code QML :
Code qml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import QtQuick 2.5
import QtQuick.Window 2.2
import Qt.labs.settings 1.0
 
Window {
    visible: true
    title: qsTr('Test Settings')
 
    Settings {
        category: "Category_1"
 
        property string value1: "ma première entrée"
 
    }
}

Et c'est tout ... quand je disais que c'était déconcertant de simplicité je ne mentais pas

Cependant, prenons quelques instants pour expliquer ce qui se passe.

Lorsque vous allez utiliser le composant Settings, celui-ci agira ni plus ni moins comme a un appel au fichier de configuration précédemment configuré (voire votre code C++ ou Python). Si ce fichier est vide ou s'il n'existe pas, le code QML va automatiquement le remplir ou le créer.
Les deux seuls points importants à respecter :
  • déclarer une seule propriété category par composant Settings créé ;
  • ne pas déclarer deux fois la même propriété category dans le même projet.


Évidemment vous pouvez créer autant de composants Settings que vous le souhaitez.

Bonne continuation à tous.


J

Envoyer le billet « Utilisation des fichiers de configuration en QML, en se servant du composant Settings » dans le blog Viadeo Envoyer le billet « Utilisation des fichiers de configuration en QML, en se servant du composant Settings » dans le blog Twitter Envoyer le billet « Utilisation des fichiers de configuration en QML, en se servant du composant Settings » dans le blog Google Envoyer le billet « Utilisation des fichiers de configuration en QML, en se servant du composant Settings » dans le blog Facebook Envoyer le billet « Utilisation des fichiers de configuration en QML, en se servant du composant Settings » dans le blog Digg Envoyer le billet « Utilisation des fichiers de configuration en QML, en se servant du composant Settings » dans le blog Delicious Envoyer le billet « Utilisation des fichiers de configuration en QML, en se servant du composant Settings » dans le blog MySpace Envoyer le billet « Utilisation des fichiers de configuration en QML, en se servant du composant Settings » dans le blog Yahoo

Mis à jour 25/10/2019 à 15h51 par ClaudeLELOUP

Catégories
PyQt , Qt Quick - QML

Commentaires