FAQ Qt
FAQ QtConsultez toutes les FAQ
Nombre d'auteurs : 26, nombre de questions : 298, dernière mise à jour : 15 juin 2021
Qt 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=superjaja
Voici 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;
}