QProcessEnvironment Class
Die Klasse „QProcessEnvironment“ enthält die Umgebungsvariablen, die an ein Programm übergeben werden können. Mehr...
| Header: | #include <QProcessEnvironment> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QProcessEnvironment gehört zu den Klassen für Ein-/Ausgabe und Netzwerke sowie zu den implizit gemeinsam genutzten Klassen.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Vergleiche zu QProcessEnvironment
| Kategorie | Vergleichbare Typen |
|---|---|
| Gleichheit | QProcessEnvironment |
Ö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() |
Verwandte Nicht-Mitglieder
| bool | operator!=(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs) |
| bool | operator==(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs) |
Ausführliche Beschreibung
Die Umgebung eines Prozesses besteht aus einer Reihe von Schlüssel-Wert-Paaren, die als Umgebungsvariablen bezeichnet werden. Die Klasse `QProcessEnvironment` fasst dieses Konzept zusammen und ermöglicht die einfache Bearbeitung dieser Variablen. Sie ist für die Verwendung in Verbindung mit ` QProcess` vorgesehen, um die Umgebung für untergeordnete Prozesse festzulegen. Sie kann nicht verwendet werden, um die Umgebung des aktuellen Prozesses zu ändern.
Die Umgebung des aufrufenden Prozesses kann mit ` QProcessEnvironment::systemEnvironment()` abgerufen werden.
Auf Unix-Systemen wird bei Variablennamen die Groß-/Kleinschreibung beachtet. Beachten Sie, dass die Unix-Umgebung zulässt, dass sowohl Variablennamen als auch -inhalte beliebige binäre Daten enthalten (mit Ausnahme des NUL-Zeichens). QProcessEnvironment behält solche Variablen bei, unterstützt jedoch keine Bearbeitung von Variablen, deren Namen oder Werte nicht durch die aktuellen Locale-Einstellungen kodiert werden können (siehe QString::toLocal8Bit).
Unter Windows wird bei Variablennamen die Groß-/Kleinschreibung nicht berücksichtigt, die Schreibweise wird jedoch beibehalten. QProcessEnvironment verhält sich entsprechend.
Sicherheitshinweise
Die Erweiterung einer Prozessumgebung um neue Umgebungsvariablen oder die Anpassung von PATH kann das System Sicherheitsrisiken aussetzen, beispielsweise durch die Ausführung einer nicht vertrauenswürdigen Binärdatei. Daher wird empfohlen, alle Benutzereingaben zu validieren, bevor sie an die Prozessumgebung übergeben werden.
Siehe auch „ QProcess“ , „ QProcess::systemEnvironment()“ und „ QProcess::setProcessEnvironment()“.
Dokumentation zum Mitgliedstyp
[since 6.3] enum QProcessEnvironment::Initialization
Diese Enumeration enthält ein Token, das zur Eindeutigkeit von Konstruktoren dient.
| Konstante | Wert | Beschreibung |
|---|---|---|
QProcessEnvironment::InheritFromParent | 0 | Es wird ein „ QProcessEnvironment “ erstellt, der, wenn er auf ein „ QProcess “ gesetzt wird, bewirkt, dass dieses die Variablen von seinem übergeordneten Objekt erbt. |
Diese Enumeration wurde in Qt 6.3 eingeführt.
Dokumentation der Mitgliedsfunktionen
QProcessEnvironment::QProcessEnvironment()
Erstellt ein neues `QProcessEnvironment`-Objekt. Dieser Konstruktor erstellt eine leere Umgebung. Wird dieser Konstruktor auf eine bereits vorhandene Umgebung (` QProcess`) angewendet, werden die aktuellen Umgebungsvariablen entfernt (mit Ausnahme von `PATH` und `SystemRoot` unter Windows).
[noexcept, since 6.3] QProcessEnvironment::QProcessEnvironment(QProcessEnvironment::Initialization)
Erstellt ein Objekt, das, wenn es unter QProcess festgelegt wird, dazu führt, dass es mit den vom übergeordneten Prozess geerbten Umgebungsvariablen ausgeführt wird.
Hinweis: Das erstellte Objekt speichert selbst keine Umgebungsvariablen, sondern weist „ QProcess “ lediglich an, beim Start des neuen Prozesses die Übernahme der Umgebung zu veranlassen. Das Hinzufügen von Umgebungsvariablen zu dem erstellten Objekt deaktiviert die Übernahme 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 passen Sie diesen an (beachten Sie jedoch, dass Änderungen an der Umgebung des Elternprozesses, die nach deren Erstellung vorgenommen werden, nicht in der modifizierten Umgebung berücksichtigt werden).
Diese Funktion wurde in Qt 6.3 eingeführt.
Siehe auch ` inheritsFromParent()` und ` systemEnvironment()`.
QProcessEnvironment::QProcessEnvironment(const QProcessEnvironment &other)
Erstellt ein `QProcessEnvironment`-Objekt, das eine Kopie von ` other` ist.
[noexcept] QProcessEnvironment::~QProcessEnvironment()
Gibt die mit diesem „ QProcessEnvironment “-Objekt verknüpften Ressourcen frei.
void QProcessEnvironment::clear()
Entfernt alle Schlüssel-Wert-Paare aus diesem „ QProcessEnvironment “-Objekt, sodass es leer wird.
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 „ QProcessEnvironment “-Objekt ein. Falls diese Variable bereits existierte, wird sie durch den neuen Wert ersetzt.
Auf den meisten Systemen hat das Einfügen einer Variablen ohne Inhalt für Anwendungen denselben Effekt, als wäre die Variable gar nicht gesetzt worden. Um jedoch sicherzustellen, dass keine Inkompatibilitäten auftreten, verwenden Sie zum Entfernen einer Variablen bitte die Funktion ` remove()`.
Siehe auch contains(), remove() und value().
void QProcessEnvironment::insert(const QProcessEnvironment &e)
Fügt den Inhalt von „ e “ in dieses „ QProcessEnvironment “-Objekt ein. Variablen in diesem Objekt, die auch in „ e “ vorhanden sind, werden überschrieben.
Dies ist eine überladene Funktion.
bool QProcessEnvironment::isEmpty() const
Gibt „ true “ zurück, wenn dieses „ QProcessEnvironment “-Objekt leer ist, d. h. wenn keine Schlüssel-Wert-Paare festgelegt sind.
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 zurück, die alle Variablennamen in diesem QProcessEnvironment -Objekt enthält.
Bei Objekten, die mit „ QProcessEnvironment::InheritFromParent “ erstellt wurden, ist die zurückgegebene Liste leer.
void QProcessEnvironment::remove(const QString &name)
Entfernt die durch name identifizierte Umgebungsvariable aus diesem QProcessEnvironment -Objekt. Falls diese Variable zuvor nicht existierte, geschieht nichts.
Siehe auch „ contains()“, „ insert()“ und „ value()“.
[noexcept] void QProcessEnvironment::swap(QProcessEnvironment &other)
Ersetzt diese Instanz der Prozessumgebung durch „ other “. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
[static] QProcessEnvironment QProcessEnvironment::systemEnvironment()
Die Funktion `systemEnvironment` gibt die Umgebungsvariablen 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-Funktionen der C-Bibliothek wie ` setenv ` oder ` putenv ` aufgerufen wurden.
Beachten Sie jedoch, dass wiederholte Aufrufe dieser Funktion das ` QProcessEnvironment `-Objekt neu erstellen, was einen nicht unerheblichen Aufwand darstellt.
Siehe auch QProcess::systemEnvironment().
QStringList QProcessEnvironment::toStringList() const
Wandelt dieses „ QProcessEnvironment “-Objekt in eine Liste von Zeichenketten um, wobei für jede gesetzte Umgebungsvariable eine Zeichenkette entsteht. Der Name der Umgebungsvariablen und ihr Wert werden durch ein Gleichheitszeichen („=“) getrennt.
Der von dieser Funktion zurückgegebene Inhalt des ` QStringList ` ist für die Darstellung geeignet. Die Verwendung mit der Funktion `QProcess::setEnvironment` wird aufgrund möglicher Kodierungsprobleme unter Unix und einer schlechteren Leistung nicht empfohlen.
Siehe auch ` systemEnvironment()`, ` QProcess::systemEnvironment()` und ` QProcess::setProcessEnvironment()`.
QString QProcessEnvironment::value(const QString &name, const QString &defaultValue = QString()) const
Durchsucht dieses QProcessEnvironment -Objekt nach einer Variable mit der Kennung name und gibt deren Wert zurück. Wird die Variable in diesem Objekt nicht gefunden, 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 Objekte vom Typ ` QProcessEnvironment ` gelten als gleich, wenn sie denselben Satz von Schlüssel-Wert-Paaren enthalten. Der Vergleich der Schlüssel erfolgt unter Berücksichtigung der Groß-/Kleinschreibung auf Plattformen, auf denen die Umgebung die Groß-/Kleinschreibung berücksichtigt.
Siehe auch operator!=() und 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.