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 |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QProcessEnvironment ist Teil von Input/Output und Networking und Implicitly Shared Classes.
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() |
Verwandte Nicht-Mitglieder
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.
Konstante | Wert | Beschreibung |
---|---|---|
QProcessEnvironment::InheritFromParent | 0 | Es 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.