FAQ Qt

FAQ QtConsultez toutes les FAQ
Nombre d'auteurs : 26, nombre de questions : 298, dernière mise à jour : 15 juin 2021
Sommaire→Modules→Qt Core→QSettingsQt grâce à la classe QSettings permet de facilement manipuler des fichiers INI à l'aide des méthodes suivantes :
- voidQSettings::i (const QString& prefix) : créer un groupe ;
- voidQSettings::endGroup() : fermer le groupe courant ;
- voidQSettings::setValue(constQString& key,constQVariant& value) : créer une clé et lui attribuer la valeur donnée ; si la clé existe déjà, son contenu sera mis à jour ;
- QVariantQSettings::value(constQString& key,constQVariant& 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.
[EquipeQt]
membre1=dourouc05
membre2=Amnell
membre3=IrmatDen
[ModerateursQt]
moderateur1=yan
moderateur2=superjajaVoici comment on pourrait l'écrire.
// 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.
// 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"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.
//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;
}





