<QtEnvironmentVariables> Proxy-Seite
Funktionen
QString | qEnvironmentVariable(const char *varName) |
QString | qEnvironmentVariable(const char *varName, const QString &defaultValue) |
int | qEnvironmentVariableIntValue(const char *varName, bool *ok = nullptr) |
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) |
Dokumentation der Funktionen
QString qEnvironmentVariable(const char *varName)
QString qEnvironmentVariable(const char *varName, const QString &defaultValue)
Diese Funktionen geben den Wert der Umgebungsvariablen varName als QString zurück. Wenn keine Variable varName in der Umgebung gefunden wird und defaultValue angegeben wird, wird defaultValue zurückgegeben. Andernfalls wird QString() zurückgegeben.
Die Funktionen zur Manipulation der Qt-Umgebung sind thread-sicher, aber dies erfordert, dass die entsprechenden Funktionen der C-Bibliothek wie getenv und putenv nicht direkt aufgerufen werden.
Die folgende Tabelle beschreibt, wie man zwischen qgetenv() und qEnvironmentVariable() wählen kann:
Bedingung | Empfehlung |
---|---|
Variable enthält Dateipfade oder Benutzertext | qEnvironmentVariable() |
Windows-spezifischer Code | qEnvironmentVariable() |
Unix-spezifischer Code, Zielvariable ist nicht QString und/oder wird als Schnittstelle zu Nicht-Qt-APIs verwendet | qgetenv() |
Zielvariable ist eine QString | qEnvironmentVariable() |
Zielvariable ist ein QByteArray oder std::string | qgetenv() |
Hinweis: Auf Unix-Systemen kann diese Funktion zu Datenverlusten führen, wenn die ursprüngliche Zeichenkette beliebige Binärdaten enthält, die vom Locale-Codec nicht dekodiert werden können. Verwenden Sie in diesem Fall stattdessen qgetenv(). Unter Windows ist diese Funktion verlustfrei.
Hinweis: Der Variablenname varName darf nur US-ASCII-Zeichen enthalten.
Siehe auch qputenv(), qgetenv(), qEnvironmentVariableIsSet(), und qEnvironmentVariableIsEmpty().
[noexcept]
int qEnvironmentVariableIntValue(const char *varName, bool *ok = nullptr)
Gibt den numerischen Wert der Umgebungsvariablen varName zurück. Wenn ok nicht null ist, wird *ok
auf true
oder false
gesetzt, je nach Erfolg der Konvertierung.
Äquivalent zu
qgetenv(varName).toInt(ok, 0)
außer, dass es viel schneller ist und keine Ausnahmen auslösen kann.
Hinweis: Es gibt eine Begrenzung für die Länge des Wertes, die für alle gültigen Werte von int ausreicht, wobei führende Nullen oder Leerzeichen nicht berücksichtigt werden. Zu lange Werte werden entweder abgeschnitten oder diese Funktion setzt ok auf false
.
Siehe auch qgetenv(), qEnvironmentVariable(), und qEnvironmentVariableIsSet().
[noexcept]
bool qEnvironmentVariableIsEmpty(const char *varName)
Gibt zurück, ob die Umgebungsvariable varName leer ist.
Äquivalent zu
qgetenv(varName).isEmpty()
mit dem Unterschied, dass es potenziell viel schneller ist und keine Ausnahmen auslösen kann.
Siehe auch qgetenv(), qEnvironmentVariable(), und qEnvironmentVariableIsSet().
[noexcept]
bool qEnvironmentVariableIsSet(const char *varName)
Gibt zurück, ob die Umgebungsvariable varName gesetzt ist.
Äquivalent zu
!qgetenv(varName).isNull()
mit dem Unterschied, dass es potenziell viel schneller ist und keine Ausnahmen auslösen kann.
Siehe auch qgetenv(), qEnvironmentVariable(), und qEnvironmentVariableIsEmpty().
QByteArray qgetenv(const char *varName)
Gibt den Wert der Umgebungsvariablen mit dem Namen varName als QByteArray zurück. Wenn keine Variable mit diesem Namen in der Umgebung gefunden wird, gibt diese Funktion eine standardmäßig konstruierte QByteArray zurück.
Die Funktionen zur Manipulation der Qt-Umgebung sind thread-sicher, aber dies erfordert, dass die entsprechenden Funktionen der C-Bibliothek wie getenv und putenv nicht direkt aufgerufen werden.
Um die Daten in ein QString zu konvertieren, verwenden Sie QString::fromLocal8Bit().
Hinweis: Unter Desktop-Windows kann qgetenv() zu Datenverlusten führen, wenn die ursprüngliche Zeichenkette Unicode-Zeichen enthält, die in der ANSI-Kodierung nicht darstellbar sind. Verwenden Sie stattdessen qEnvironmentVariable(). Auf Unix-Systemen ist diese Funktion verlustfrei.
Hinweis: Diese Funktion ist thread-sicher.
Siehe auch qputenv(), qEnvironmentVariable(), qEnvironmentVariableIsSet(), und qEnvironmentVariableIsEmpty().
bool qputenv(const char *varName, QByteArrayView value)
Diese Funktion setzt die value der Umgebungsvariablen namens varName. Sie erstellt die Variable, wenn sie nicht existiert. Sie gibt 0 zurück, wenn die Variable nicht gesetzt werden konnte.
Der Aufruf von qputenv mit einem leeren Wert entfernt die Umgebungsvariable unter Windows und macht sie unter Unix gesetzt (aber leer). Verwenden Sie lieber qunsetenv() für ein vollständig portables Verhalten.
Hinweis: qputenv() wurde eingeführt, weil putenv() aus der Standard-C-Bibliothek in VC2005 (und späteren Versionen) veraltet war. qputenv() verwendet die Ersatzfunktion in VC und ruft die Implementierung der Standard-C-Bibliothek auf allen anderen Plattformen auf.
Hinweis: In Qt-Versionen vor 6.5 lautete das Argument value QByteArray , nicht QByteArrayView.
Siehe auch qgetenv() und qEnvironmentVariable().
bool qunsetenv(const char *varName)
Diese Funktion löscht die Variable varName aus der Umgebung.
Gibt bei Erfolg true
zurück.
Siehe auch qputenv(), qgetenv(), und qEnvironmentVariable().
© 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.