Sur cette page

QProcessEnvironment Class

La classe `QProcessEnvironment` contient les variables d'environnement pouvant être transmises à un programme. En savoir plus...

En-tête : #include <QProcessEnvironment>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Remarque : toutes les fonctions de cette classe sont réentrantes.

Comparaisons de QProcessEnvironment

CatégorieTypes comparables
égalitéQProcessEnvironment

Types publics

(since 6.3) enum Initialization { InheritFromParent }

Fonctions publiques

QProcessEnvironment()
(since 6.3) QProcessEnvironment(QProcessEnvironment::Initialization)
QProcessEnvironment(const QProcessEnvironment &other)
~QProcessEnvironment()
void clear()
bool contains(const QString &name) const
(since 6.3) bool inheritsFromParent() const
void insert(const QString &name, const QString &value)
void insert(const QProcessEnvironment &e)
bool isEmpty() const
QStringList keys() const
void remove(const QString &name)
void swap(QProcessEnvironment &other)
QStringList toStringList() const
QString value(const QString &name, const QString &defaultValue = QString()) const
QProcessEnvironment &operator=(const QProcessEnvironment &other)

Membres publics statiques

QProcessEnvironment systemEnvironment()
bool operator!=(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)
bool operator==(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)

Description détaillée

L'environnement d'un processus est constitué d'un ensemble de paires clé=valeur appelées variables d'environnement. La classe QProcessEnvironment encapsule ce concept et permet de manipuler facilement ces variables. Elle est destinée à être utilisée avec la fonction QProcess afin de définir l'environnement des processus enfants. Elle ne peut pas être utilisée pour modifier l'environnement du processus actuel.

L'environnement du processus appelant peut être obtenu à l'aide de ` QProcessEnvironment::systemEnvironment()`.

Sur les systèmes Unix, les noms de variables sont sensibles à la casse. Notez que l’environnement Unix autorise à la fois les noms de variables et leur contenu à contenir des données binaires arbitraires (à l’exception du caractère NUL). QProcessEnvironment préservera ces variables, mais ne prend pas en charge la manipulation des variables dont les noms ou les valeurs ne peuvent pas être encodés par les paramètres régionaux actuels (voir QString::toLocal8Bit).

Sous Windows, les noms de variables ne sont pas sensibles à la casse, mais conservent la casse d’origine. QProcessEnvironment se comporte en conséquence.

Considérations de sécurité

L’extension d’un environnement de processus avec de nouvelles variables d’environnement ou la modification de PATH peut exposer le système à des failles de sécurité, par exemple via l’exécution d’un binaire non fiable. Il est donc recommandé de valider toutes les entrées utilisateur avant de les transmettre à l’environnement de processus.

Voir également QProcess, QProcess::systemEnvironment() et QProcess::setProcessEnvironment().

Documentation sur les types de membres

[since 6.3] enum QProcessEnvironment::Initialization

Cette énumération contient un jeton utilisé pour lever toute ambiguïté concernant les constructeurs.

ConstanteValeurDescription
QProcessEnvironment::InheritFromParent0Un « QProcessEnvironment » sera créé qui, lorsqu’il est défini sur un « QProcess », lui permet d’hériter des variables de son parent.

Cette énumération a été introduite dans Qt 6.3.

Documentation des fonctions membres

QProcessEnvironment::QProcessEnvironment()

Crée un nouvel objet `QProcessEnvironment`. Ce constructeur crée un environnement vide. S'il est appelé sur un objet ` QProcess`, cela entraînera la suppression des variables d'environnement actuelles (à l'exception de `PATH` et de `SystemRoot` sous Windows).

[noexcept, since 6.3] QProcessEnvironment::QProcessEnvironment(QProcessEnvironment::Initialization)

Crée un objet qui, lorsqu'il est défini sur QProcess, entraîne l'exécution de ce dernier avec les variables d'environnement héritées de son processus parent.

Remarque : l’objet créé ne stocke aucune variable d’environnement en soi ; il indique simplement à ` QProcess ` de s’organiser pour hériter de l’environnement au moment du démarrage du nouveau processus. L’ajout de variables d’environnement à l’objet créé désactivera l’héritage de l’environnement et aboutira à un environnement ne contenant que les variables d’environnement ajoutées.

Si vous souhaitez une version modifiée de l’environnement parent, commencez par la valeur de retour de ` systemEnvironment() ` et modifiez-la (mais notez que les modifications apportées à l’environnement du processus parent après la création de celui-ci ne seront pas répercutées dans l’environnement modifié).

Cette fonction a été introduite dans Qt 6.3.

Voir également inheritsFromParent() et systemEnvironment().

QProcessEnvironment::QProcessEnvironment(const QProcessEnvironment &other)

Crée un objet `QProcessEnvironment` qui est une copie de ` other`.

[noexcept] QProcessEnvironment::~QProcessEnvironment()

Libère les ressources associées à cet objet ` QProcessEnvironment `.

void QProcessEnvironment::clear()

Supprime toutes les paires clé=valeur de cet objet ` QProcessEnvironment `, le vidant ainsi de son contenu.

Si l'environnement a été créé à l'aide de ` QProcessEnvironment::InheritFromParent `, il reste inchangé.

Voir également isEmpty() et systemEnvironment().

bool QProcessEnvironment::contains(const QString &name) const

Renvoie « true » si la variable d'environnement « name » est présente dans cet objet « QProcessEnvironment ».

Voir également insert() et value().

[since 6.3] bool QProcessEnvironment::inheritsFromParent() const

Renvoie « true » si cet objet « QProcessEnvironment » a été créé à l'aide de « QProcessEnvironment::InheritFromParent ».

Cette fonction a été introduite dans Qt 6.3.

Voir également isEmpty().

void QProcessEnvironment::insert(const QString &name, const QString &value)

Insère la variable d'environnement nommée « name » et dont le contenu est « value » dans cet objet « QProcessEnvironment ». Si cette variable existait déjà, elle est remplacée par la nouvelle valeur.

Sur la plupart des systèmes, l'insertion d'une variable vide aura le même effet pour les applications que si la variable n'avait pas été définie du tout. Cependant, pour garantir l'absence d'incompatibilités, veuillez utiliser la fonction remove() pour supprimer une variable.

Voir également contains(), remove() et value().

void QProcessEnvironment::insert(const QProcessEnvironment &e)

Insère le contenu de e dans cet objet QProcessEnvironment. Les variables de cet objet qui existent également dans e seront écrasées.

Il s'agit d'une fonction surchargée.

bool QProcessEnvironment::isEmpty() const

Renvoie « true » si cet objet « QProcessEnvironment » est vide : c'est-à-dire s'il ne contient aucune paire clé=valeur.

Cette méthode renvoie également ` true ` pour les objets qui ont été créés à l’aide de ` QProcessEnvironment::InheritFromParent`.

Voir également clear(), systemEnvironment(), insert() et inheritsFromParent().

QStringList QProcessEnvironment::keys() const

Renvoie une liste contenant tous les noms de variables de cet objet ` QProcessEnvironment `.

La liste renvoyée est vide pour les objets créés à l'aide de la fonction ` QProcessEnvironment::InheritFromParent`.

void QProcessEnvironment::remove(const QString &name)

Supprime la variable d'environnement identifiée par name de cet objet QProcessEnvironment. Si cette variable n'existait pas auparavant, rien ne se passe.

Voir également contains(), insert() et value().

[noexcept] void QProcessEnvironment::swap(QProcessEnvironment &other)

Remplace cette instance d'environnement de traitement par other. Cette opération est très rapide et ne rencontre jamais d'échec.

[static] QProcessEnvironment QProcessEnvironment::systemEnvironment()

La fonction `systemEnvironment` renvoie l'environnement du processus appelant.

Elle est renvoyée sous la forme d’un objet ` QProcessEnvironment`. Cette fonction ne met pas en cache l’environnement système. Il est donc possible d’obtenir une version mise à jour de l’environnement si des fonctions de bibliothèque C de bas niveau telles que ` setenv ` ou ` putenv ` ont été appelées.

Notez toutefois que des appels répétés à cette fonction recréeront l'objet ` QProcessEnvironment `, ce qui constitue une opération non négligeable.

Voir également QProcess::systemEnvironment().

QStringList QProcessEnvironment::toStringList() const

Convertit cet objet ` QProcessEnvironment ` en une liste de chaînes de caractères, une pour chaque variable d'environnement définie. Le nom de la variable d'environnement et sa valeur sont séparés par le signe égal (« = »).

Le contenu de ` QStringList ` renvoyé par cette fonction est prêt à être affiché. Son utilisation avec la fonction `QProcess::setEnvironment` n’est pas recommandée en raison de problèmes d’encodage potentiels sous Unix et d’une baisse des performances.

Voir également ` systemEnvironment()`, ` QProcess::systemEnvironment()` et ` QProcess::setProcessEnvironment()`.

QString QProcessEnvironment::value(const QString &name, const QString &defaultValue = QString()) const

Recherche dans cet objet QProcessEnvironment une variable identifiée par name et renvoie sa valeur. Si la variable n'est pas trouvée dans cet objet, la valeur defaultValue est renvoyée à la place.

Voir également contains(), insert() et remove().

QProcessEnvironment &QProcessEnvironment::operator=(const QProcessEnvironment &other)

Copie le contenu de l'objet other QProcessEnvironment dans celui-ci.

Éléments non membres associés

[noexcept] bool operator!=(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)

Renvoie « true » si les objets d'environnement du processus lhs et rhs sont différents.

Voir également operator==().

[noexcept] bool operator==(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)

Renvoie ` true ` si les objets d'environnement du processus ` lhs ` et ` rhs ` sont égaux.

Deux objets ` QProcessEnvironment ` sont considérés comme égaux s’ils possèdent le même ensemble de paires clé=valeur. La comparaison des clés tient compte de la casse sur les plateformes où l’environnement est sensible à la casse.

Voir également operator!=() et contains().

© 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.