QProcessEnvironment Class

Die Klasse QProcessEnvironment enthält die Umgebungsvariablen, die an ein Programm übergeben werden können. Mehr...

Kopfzeile: #include <QProcessEnvironment>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Diese Klasse ist gleichwertig-vergleichbar.

Hinweis: Alle Funktionen in dieser Klasse sind reentrant.

Öffentliche Typen

(since 6.3) enum Initialization { InheritFromParent }

Öffentliche Funktionen

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)

Statische öffentliche Mitglieder

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

Detaillierte Beschreibung

Die Umgebung eines Prozesses besteht aus einer Menge von Schlüssel=Wert-Paaren, die als Umgebungsvariablen bekannt sind. Die Klasse QProcessEnvironment umhüllt dieses Konzept und ermöglicht eine einfache Manipulation dieser Variablen. Sie ist dafür gedacht, zusammen mit QProcess verwendet zu werden, um die Umgebung für Kindprozesse festzulegen. Sie kann nicht verwendet werden, um die Umgebung des aktuellen Prozesses zu ändern.

Die Umgebung des aufrufenden Prozesses kann mit QProcessEnvironment::systemEnvironment() ermittelt werden.

Auf Unix-Systemen wird bei den Variablennamen zwischen Groß- und Kleinschreibung unterschieden. Beachten Sie, dass die Unix-Umgebung sowohl Variablennamen als auch -inhalte beliebige Binärdaten enthalten kann (mit Ausnahme des NUL-Zeichens). QProcessEnvironment erhält solche Variablen, unterstützt aber nicht die Manipulation von Variablen, deren Namen oder Werte nicht durch die aktuellen Locale-Einstellungen kodiert werden können (siehe QString::toLocal8Bit).

Unter Windows wird bei den Variablennamen die Groß- und Kleinschreibung nicht beachtet, sondern beibehalten. QProcessEnvironment verhält sich entsprechend.

Siehe auch QProcess, QProcess::systemEnvironment(), und QProcess::setProcessEnvironment().

Dokumentation der Mitgliedstypen

[since 6.3] enum QProcessEnvironment::Initialization

Diese Aufzählung enthält ein Token, das zur Disambiguierung von Konstruktoren verwendet wird.

KonstanteWertBeschreibung
QProcessEnvironment::InheritFromParent0Es wird ein QProcessEnvironment erstellt, das, wenn es auf QProcess gesetzt wird, bewirkt, dass es Variablen von seinem Elternteil erbt.

Diese Aufzählung wurde in Qt 6.3 eingeführt.

Dokumentation der Mitgliedsfunktionen

QProcessEnvironment::QProcessEnvironment()

Erzeugt ein neues QProcessEnvironment-Objekt. Dieser Konstruktor erzeugt eine leere Umgebung. Wenn er auf QProcess gesetzt wird, werden die aktuellen Umgebungsvariablen entfernt (außer PATH und SystemRoot unter Windows).

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

Erzeugt ein Objekt, das, wenn es auf QProcess gesetzt wird, dazu führt, dass es mit Umgebungsvariablen ausgeführt wird, die von seinem Elternprozess geerbt wurden.

Hinweis: Das erstellte Objekt speichert selbst keine Umgebungsvariablen, sondern weist QProcess lediglich an, die Vererbung der Umgebung zum Zeitpunkt des Starts des neuen Prozesses zu veranlassen. Das Hinzufügen von Umgebungsvariablen zu dem erstellten Objekt deaktiviert die Vererbung der Umgebung und führt zu einer Umgebung, die nur die hinzugefügten Umgebungsvariablen enthält.

Wenn eine modifizierte Version der übergeordneten Umgebung gewünscht wird, beginnen Sie mit dem Rückgabewert von systemEnvironment() und modifizieren Sie diesen (beachten Sie aber, dass Änderungen an der Umgebung des übergeordneten Prozesses nach der Erstellung nicht in der modifizierten Umgebung reflektiert werden).

Diese Funktion wurde in Qt 6.3 eingeführt.

Siehe auch inheritsFromParent() und systemEnvironment().

QProcessEnvironment::QProcessEnvironment(const QProcessEnvironment &other)

Erzeugt ein QProcessEnvironment-Objekt, das eine Kopie von other ist.

[noexcept] QProcessEnvironment::~QProcessEnvironment()

Gibt die mit diesem QProcessEnvironment Objekt verbundenen Ressourcen frei.

void QProcessEnvironment::clear()

Entfernt alle Schlüssel=Wert-Paare aus diesem QProcessEnvironment Objekt und macht es leer.

Wenn die Umgebung mit QProcessEnvironment::InheritFromParent erstellt wurde, bleibt sie unverändert.

Siehe auch isEmpty() und systemEnvironment().

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

Gibt true zurück, wenn die Umgebungsvariable mit dem Namen name in diesem QProcessEnvironment Objekt gefunden wird.

Siehe auch insert() und value().

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

Gibt true zurück, wenn dieses QProcessEnvironment mit QProcessEnvironment::InheritFromParent erstellt wurde.

Diese Funktion wurde in Qt 6.3 eingeführt.

Siehe auch isEmpty().

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

Fügt die Umgebungsvariable mit dem Namen name und dem Inhalt value in dieses Objekt QProcessEnvironment ein. Wenn diese Variable bereits vorhanden war, wird sie durch den neuen Wert ersetzt.

Auf den meisten Systemen hat das Einfügen einer Variable ohne Inhalt für die Anwendungen die gleiche Wirkung, als ob die Variable gar nicht gesetzt worden wäre. Um jedoch sicherzustellen, dass es keine Inkompatibilitäten gibt, verwenden Sie zum Entfernen einer Variablen bitte die Funktion remove().

Siehe auch contains(), remove(), und value().

void QProcessEnvironment::insert(const QProcessEnvironment &e)

Dies ist eine überladene Funktion.

Fügt den Inhalt von e in dieses QProcessEnvironment Objekt ein. Variablen in diesem Objekt, die auch in e vorhanden sind, werden überschrieben.

bool QProcessEnvironment::isEmpty() const

Gibt true zurück, wenn dieses QProcessEnvironment Objekt leer ist: das heißt, es sind keine Schlüssel=Wert-Paare gesetzt.

Diese Methode gibt auch true für Objekte zurück, die mit QProcessEnvironment::InheritFromParent erstellt wurden.

Siehe auch clear(), systemEnvironment(), insert(), und inheritsFromParent().

QStringList QProcessEnvironment::keys() const

Gibt eine Liste mit allen Variablennamen in diesem QProcessEnvironment Objekt zurück.

Die zurückgegebene Liste ist leer für Objekte, die mit QProcessEnvironment::InheritFromParent erstellt wurden.

void QProcessEnvironment::remove(const QString &name)

Entfernt die durch name identifizierte Umgebungsvariable aus diesem QProcessEnvironment Objekt. Wenn diese Variable vorher nicht existierte, passiert nichts.

Siehe auch contains(), insert(), und value().

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

Tauscht diese Prozessumgebungsinstanz mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.

[static] QProcessEnvironment QProcessEnvironment::systemEnvironment()

Die Funktion systemEnvironment gibt die Umgebung des aufrufenden Prozesses zurück.

Sie wird als QProcessEnvironment zurückgegeben. Diese Funktion speichert die Systemumgebung nicht im Cache. Daher ist es möglich, eine aktualisierte Version der Umgebung zu erhalten, wenn Low-Level-C-Bibliotheksfunktionen wie setenv oder putenv aufgerufen wurden.

Beachten Sie jedoch, dass wiederholte Aufrufe dieser Funktion das Objekt QProcessEnvironment neu erstellen, was eine nicht-triviale Operation ist.

Siehe auch QProcess::systemEnvironment().

QStringList QProcessEnvironment::toStringList() const

Konvertiert dieses QProcessEnvironment Objekt in eine Liste von Strings, einen für jede gesetzte Umgebungsvariable. Der Name der Umgebungsvariablen und ihr Wert werden durch ein Gleichheitszeichen ('=') getrennt.

Der von dieser Funktion zurückgegebene Inhalt von QStringList ist für die Präsentation geeignet. Die Verwendung mit der Funktion QProcess::setEnvironment wird wegen möglicher Kodierungsprobleme unter Unix und schlechterer Leistung nicht empfohlen.

Siehe auch systemEnvironment(), QProcess::systemEnvironment(), und QProcess::setProcessEnvironment().

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

Durchsucht dieses Objekt QProcessEnvironment nach einer durch name identifizierten Variablen und gibt ihren Wert zurück. Wenn die Variable nicht in diesem Objekt gefunden wird, wird stattdessen defaultValue zurückgegeben.

Siehe auch contains(), insert(), und remove().

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

Kopiert den Inhalt des Objekts other QProcessEnvironment in dieses Objekt.

Verwandte Nicht-Mitglieder

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

Gibt true zurück, wenn die Prozessumgebungsobjekte lhs und rhs unterschiedlich sind.

Siehe auch operator==().

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

Gibt true zurück, wenn die Prozessumgebungsobjekte lhs und rhs gleich sind.

Zwei QProcessEnvironment Objekte werden als gleich angesehen, wenn sie den gleichen Satz von Schlüssel=Wert-Paaren haben. Der Vergleich der Schlüssel erfolgt unter Berücksichtigung der Groß- und Kleinschreibung auf Plattformen, auf denen die Umgebung Groß- und Kleinschreibung berücksichtigt.

Siehe auch operator!=() und contains().

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