<QtEnvironmentVariables>
Fonctions d'aide pour travailler avec les variables d'environnement. Plus d'informations...
| Header: | #include <QtEnvironmentVariables> |
Fonctions
| QString | qEnvironmentVariable(const char *varName) |
| QString | qEnvironmentVariable(const char *varName, const QString &defaultValue) |
| int | qEnvironmentVariableIntValue(const char *varName, bool *ok = nullptr) |
(since 6.10) std::optional<qint64> | qEnvironmentVariableIntegerValue(const char *varName) |
| bool | qEnvironmentVariableIsEmpty(const char *varName) |
| bool | qEnvironmentVariableIsSet(const char *varName) |
| QByteArray | qgetenv(const char *varName) |
| bool | qputenv(const char *varName, QByteArrayView value) |
| bool | qunsetenv(const char *varName) |
Documentation des fonctions
QString qEnvironmentVariable(const char *varName, const QString &defaultValue)
QString qEnvironmentVariable(const char *varName)
Ces fonctions renvoient la valeur de la variable d'environnement varName sous la forme d'un QString. Si aucune variable varName n'est trouvée dans l'environnement et que defaultValue est fourni, defaultValue est renvoyé. Sinon, QString() est renvoyé.
Les fonctions de manipulation de l'environnement de Qt sont sûres pour les threads, mais cela implique que les fonctions équivalentes de la bibliothèque C, telles que getenv et putenv, ne soient pas directement appelées.
Le tableau suivant décrit comment choisir entre qgetenv() et qEnvironmentVariable() :
| Condition | Recommandation |
|---|---|
| La variable contient des chemins d'accès à des fichiers ou du texte utilisateur | qEnvironmentVariable() |
| Code spécifique à Windows | qEnvironmentVariable() |
| Code spécifique à Unix, la variable de destination n'est pas QString et/ou est utilisée pour interfacer avec des API non Qt. | qgetenv() |
| La variable de destination est un QString | qEnvironmentVariable() |
| La variable de destination est une QByteArray ou une std::string | qgetenv() |
Remarque : sur les systèmes Unix, cette fonction peut entraîner une perte de données si la chaîne originale contient des données binaires arbitraires qui ne peuvent pas être décodées par le codec local. Dans ce cas, utilisez plutôt qgetenv(). Sous Windows, cette fonction est sans perte de données.
Remarque : le nom de la variable varName ne doit contenir que des caractères US-ASCII.
Voir aussi qputenv(), qgetenv(), qEnvironmentVariableIsSet(), qEnvironmentVariableIsEmpty() et qEnvironmentVariableIntegerValue().
[noexcept] int qEnvironmentVariableIntValue(const char *varName, bool *ok = nullptr)
Renvoie la valeur numérique de la variable d'environnement varName. Si ok n'est pas nul, *ok est remplacé par true ou false en fonction de la réussite de la conversion.
Équivalent à
int to_int = qgetenv(varName).toInt(ok, 0);
sauf qu'il est beaucoup plus rapide et qu'il ne peut pas lancer d'exceptions.
Voir aussi qgetenv(), qEnvironmentVariable(), et qEnvironmentVariableIsSet().
[noexcept, since 6.10] std::optional<qint64> qEnvironmentVariableIntegerValue(const char *varName)
Renvoie la valeur numérique de la variable d'environnement varName. Si la variable n'est pas définie ou n'a pas pu être analysée comme un entier, il renvoie std::nullopt.
Similaire à
int to_int = qgetenv(varName).toInt(ok, 0);
sauf qu'il est beaucoup plus rapide et qu'il ne peut pas lancer d'exceptions.
Si une valeur de zéro est sémantiquement la même qu'une variable vide ou non définie, les applications peuvent utiliser la commande
auto value = qEnvironmentVariableIntegerValue(varName).value_or(0);
Notez dans ce cas que les échecs d'analyse d'une valeur produiront également un zéro.
Mais si une valeur de zéro peut être utilisée pour désactiver une fonctionnalité, les applications peuvent comparer la valeur retournée std::optional à zéro, ce qui ne sera vrai que si la variable a été définie et contenait un nombre qui s'est analysé comme zéro, comme dans :
bool equals_zero = qEnvironmentVariableIntegerValue(varName) == 0;
Cette fonction a été introduite dans Qt 6.10.
Voir aussi qgetenv(), qEnvironmentVariable() et qEnvironmentVariableIsSet().
[noexcept] bool qEnvironmentVariableIsEmpty(const char *varName)
Retourne si la variable d'environnement varName est vide.
Equivalent à
bool is_empty = qgetenv(varName).isEmpty();
sauf qu'il est potentiellement beaucoup plus rapide et qu'il ne peut pas lancer d'exceptions.
Voir aussi qgetenv(), qEnvironmentVariable(), et qEnvironmentVariableIsSet().
[noexcept] bool qEnvironmentVariableIsSet(const char *varName)
Indique si la variable d'environnement varName est définie.
Equivalent à
bool is_not_null = !qgetenv(varName).isNull();
sauf qu'il est potentiellement beaucoup plus rapide et qu'il ne peut pas lancer d'exceptions.
Voir aussi qgetenv(), qEnvironmentVariable(), qEnvironmentVariableIsEmpty(), et qEnvironmentVariableIntegerValue().
QByteArray qgetenv(const char *varName)
Renvoie la valeur de la variable d'environnement portant le nom varName sous la forme d'un QByteArray. Si aucune variable portant ce nom n'est trouvée dans l'environnement, cette fonction renvoie un QByteArray construit par défaut.
Les fonctions de manipulation de l'environnement de Qt sont sûres pour les threads, mais cela implique que les fonctions équivalentes de la bibliothèque C, telles que getenv et putenv, ne soient pas directement appelées.
Pour convertir les données en QString, utilisez QString::fromLocal8Bit().
Remarque : sous Windows, qgetenv() peut entraîner une perte de données si la chaîne originale contient des caractères Unicode non représentables dans l'encodage ANSI. Utilisez plutôt qEnvironmentVariable(). Sur les systèmes Unix, cette fonction est sans perte de données.
Remarque : cette fonction est sûre pour les threads.
Voir aussi qputenv(), qEnvironmentVariable(), qEnvironmentVariableIsSet(), qEnvironmentVariableIsEmpty() et qEnvironmentVariableIntegerValue().
bool qputenv(const char *varName, QByteArrayView value)
Cette fonction définit l'adresse value de la variable d'environnement nommée varName. Elle crée la variable si elle n'existe pas. Elle renvoie 0 si la variable n'a pas pu être définie.
L'appel à qputenv avec une valeur vide supprime la variable d'environnement sous Windows, et la définit (mais vide) sous Unix. Préférez l'utilisation de qunsetenv() pour un comportement totalement portable.
Note : qputenv() a été introduit parce que putenv() de la bibliothèque C standard a été déprécié dans VC2005 (et les versions suivantes). qputenv() utilise la fonction de remplacement dans VC, et appelle l'implémentation de la bibliothèque C standard sur toutes les autres plates-formes.
Remarque : dans les versions de Qt antérieures à la version 6.5, l'argument value était QByteArray, et non QByteArrayView.
Voir aussi qgetenv() et qEnvironmentVariable().
bool qunsetenv(const char *varName)
Cette fonction supprime la variable varName de l'environnement.
Elle renvoie true en cas de succès.
Voir aussi qputenv(), qgetenv() et qEnvironmentVariable().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.