FAQ Qt FAQ Qt Creator FAQ PyQt & PySide

FAQ QtConsultez toutes les FAQ

Nombre d'auteurs : 26, nombre de questions : 298, dernière mise à jour : 6 mai 2017 

 
OuvrirSommaireModulesQt CoreQSettings

Qt grâce à la classe QSettings permet de facilement manipuler des fichiers INI à l'aide des méthodes suivantes :

  • void QSettings::i (const QString & prefix) : créer un groupe ;
  • void QSettings::endGroup() : fermer le groupe courant ;
  • void QSettings::setValue(const QString & key,const QVariant & value) : créer une clé et lui attribuer la valeur donnée ; si la clé existe déjà, son contenu sera mis à jour ;
  • QVariant QSettings::value(const QString & key,const QVariant & defaultValue =QVariant()) const : Retourne la valeur correspondant à la clé passée en paramètre ; si cette clé n'existe pas, elle retourne la valeur par défaut précisée en paramètre (defaultValue).

Voici un fichier INI.

 
Sélectionnez
[EquipeQt]
membre1=dourouc05
membre2=Amnell
membre3=IrmatDen

[ModerateursQt]
moderateur1=yan
moderateur2=superjaja 

Voici comment on pourrait l'écrire.

 
Sélectionnez
// Création du fichier en précisant que l'on travaille avec un fichier de format INI.
QSettings settings("Developpez.ini", QSettings::IniFormat);

// Création du groupe [EquipeQt]
settings.beginGroup("EquipeQt");

// Création des différentes clés et valeurs correspondantes
settings.setValue("membre1", "dourouc05");
settings.setValue("membre2", "Amnell");
settings.setValue("membre3", "IrmatDen");

// On ferme le groupe [EquipeQt]
settings.endGroup();

// Création du groupe [ModerateursQt]
settings.beginGroup("ModerateursQt");

// Création des différentes clés et valeurs correspondantes
settings.setValue("moderateur1", "yan");
settings.setValue("moderateur2", "superjaja");

// On ferme le groupe [ModerateursQt]
settings.endGroup();

Voici comment on pourrait le lire.

 
Sélectionnez
// Ouverture du fichier INI
QSettings settings("Developpez.ini", QSettings::IniFormat);

// On récupère la valeur de membre1 du groupe [EquipeQt]
QString membre1 = settings.value("EquipeQt/membre1","Developpez").toString();
//membre1 == "dourouc05"

// On souhaite récupérer la clé membre4 du groupe [EquipeQt].
// Celui-ci n'existant pas, c'est la valeur par défaut qui est retournée.
QString defaultValue = settings.value("EquipeQt/membre4","Developpez")
                               .toString();
// defaultValue == "Developpez"

// On récupère la valeur du moderateur2 dans le groupe [ModerateursQt]
QString moderateur2 = settings.value("ModerateursQt/moderateur2","developpez")
                              .toString();
// moderateur2 == "superjaja" 
Mis à jour le 7 mai 2012  par François Jaffré

La base de registre est très importante pour Windows car elle contient les données de configuration du système d'exploitation et des logiciels qui y sont installés. De même, elle sert énormément pour la configuration et l'initialisation des programmes. Par exemple, les valeurs contenues dans la clé Run, elle-même située dans HKEY_CURRENT_USER, provoquent une exécution automatique de certaines applications lors de l'ouverture d'une session. Qt permet de facilement lire et écrire dans la base de registre de Windows à l'aide de la classe QSettings.

 
Sélectionnez
//Création d'une nouvelle clé nommée "Developpez" dans HKEY_CURRENT_USER
QSettings settings("HKEY_CURRENT_USER\\Developpez",QSettings::NativeFormat);

//Création de nouvelles clés avec leur valeur correspondante dans "HKEY_CURRENT_USER\\Developpez"
settings.setValue("Moderateur1", "yan");
settings.setValue("Moderateur2", "superjaja");
settings.setValue("ResponsableQt", "dourouc05");

//Lecture de la valeur moderateur1
QString value = settings.value("Moderateur1").toString(); //value == "yan"

//Lecture de toutes les clés contenues dans "HKEY_CURRENT_USER\\Developpez"
foreach(const QString& str,settings.allKeys())
{
    //str == Moderateur1, Moderateur2 puis ResponsableQt
    qDebug() << str;
}
Mis à jour le 7 mai 2012  par François Jaffré
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 - 2017 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.