<QtEnvironmentVariables>

Funciones de ayuda para trabajar con variables de entorno. Más...

Header: #include <QtEnvironmentVariables>

Funciones

QString qEnvironmentVariable(const char *varName)
QString qEnvironmentVariable(const char *varName, const QString &defaultValue)
int qEnvironmentVariableIntValue(const char *varName, bool *ok = nullptr)
(since 6.10) std::optional<qint64> qEnvironmentVariableIntegerValue(const char *varName)
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)

Descripción detallada

Documentación de funciones

QString qEnvironmentVariable(const char *varName, const QString &defaultValue)

QString qEnvironmentVariable(const char *varName)

Estas funciones devuelven el valor de la variable de entorno, varName, como QString. Si no se encuentra ninguna variable varName en el entorno y se proporciona defaultValue, se devuelve defaultValue. En caso contrario, se devuelve QString().

Las funciones de manipulación del entorno de Qt son seguras para los hilos, pero esto requiere que las funciones equivalentes de la biblioteca C como getenv y putenv no sean llamadas directamente.

La siguiente tabla describe cómo elegir entre qgetenv() y qEnvironmentVariable():

CondiciónRecomendación
La variable contiene rutas de archivos o texto de usuarioqEnvironmentVariable()
Código específico de WindowsqEnvironmentVariable()
Código específico de Unix, la variable de destino no es QString y/o se utiliza para interactuar con APIs que no son de Qtqgetenv()
La variable de destino es un QStringqEnvironmentVariable()
La variable de destino es QByteArray o std::stringqgetenv()

Nota: en sistemas Unix, esta función puede producir pérdidas de datos si la cadena original contiene datos binarios arbitrarios que no pueden ser descodificados por el códec de configuración regional. En ese caso, utilice qgetenv(). En Windows, esta función no tiene pérdidas.

Nota: el nombre de la variable varName sólo debe contener caracteres US-ASCII.

Véase también qputenv(), qgetenv(), qEnvironmentVariableIsSet(), qEnvironmentVariableIsEmpty() y qEnvironmentVariableIntegerValue().

[noexcept] int qEnvironmentVariableIntValue(const char *varName, bool *ok = nullptr)

Devuelve el valor numérico de la variable de entorno varName. Si ok no es nulo, establece *ok en true o false dependiendo del éxito de la conversión.

Equivalente a

   int to_int = qgetenv(varName).toInt(ok, 0);

salvo que es mucho más rápido y no puede lanzar excepciones.

Véase también qgetenv(), qEnvironmentVariable(), y qEnvironmentVariableIsSet().

[noexcept, since 6.10] std::optional<qint64> qEnvironmentVariableIntegerValue(const char *varName)

Devuelve el valor numérico de la variable de entorno varName. Si la variable no está definida o no se ha podido analizar como un número entero, devuelve std::nullopt.

Similar a

   int to_int = qgetenv(varName).toInt(ok, 0);

excepto que es mucho más rápido y no puede lanzar excepciones.

Si un valor cero es semánticamente lo mismo que una variable vacía o no establecida, las aplicaciones pueden utilizar

   auto value = qEnvironmentVariableIntegerValue(varName).value_or(0);

Tenga en cuenta en este caso que los fallos al analizar un valor también producirán un cero.

Pero si un valor de cero puede usarse para deshabilitar alguna funcionalidad, las aplicaciones pueden comparar el std::optional devuelto con cero, lo que sólo será cierto si la variable se estableció y contenía un número que se analizó como cero, como en:

   bool equals_zero = qEnvironmentVariableIntegerValue(varName) == 0;

Esta función se introdujo en Qt 6.10.

Ver también qgetenv(), qEnvironmentVariable(), y qEnvironmentVariableIsSet().

[noexcept] bool qEnvironmentVariableIsEmpty(const char *varName)

Devuelve si la variable de entorno varName está vacía.

Equivalente a

   bool is_empty = qgetenv(varName).isEmpty();

salvo que es potencialmente mucho más rápido y no puede lanzar excepciones.

Véase también qgetenv(), qEnvironmentVariable(), y qEnvironmentVariableIsSet().

[noexcept] bool qEnvironmentVariableIsSet(const char *varName)

Devuelve si la variable de entorno varName está activada.

Equivalente a

   bool is_not_null = !qgetenv(varName).isNull();

salvo que es potencialmente mucho más rápido y no puede lanzar excepciones.

Véase también qgetenv(), qEnvironmentVariable(), qEnvironmentVariableIsEmpty(), y qEnvironmentVariableIntegerValue().

QByteArray qgetenv(const char *varName)

Devuelve el valor de la variable de entorno con nombre varName como QByteArray. Si no se encuentra ninguna variable con ese nombre en el entorno, esta función devuelve una QByteArray construida por defecto.

Las funciones de manipulación del entorno de Qt son seguras para los hilos, pero esto requiere que las funciones equivalentes de la biblioteca C como getenv y putenv no sean llamadas directamente.

Para convertir los datos a QString utilice QString::fromLocal8Bit().

Nota: en Windows de escritorio, qgetenv() puede producir pérdida de datos si la cadena original contiene caracteres Unicode no representables en la codificación ANSI. Utilice qEnvironmentVariable() en su lugar. En sistemas Unix, esta función no produce pérdidas.

Nota: Esta función es segura para hilos.

Véase también qputenv(), qEnvironmentVariable(), qEnvironmentVariableIsSet(), qEnvironmentVariableIsEmpty() y qEnvironmentVariableIntegerValue().

bool qputenv(const char *varName, QByteArrayView value)

Esta función establece la value de la variable de entorno llamada varName. Creará la variable si no existe. Devuelve 0 si la variable no puede ser establecida.

Llamar a qputenv con un valor vacío elimina la variable de entorno en Windows, y la establece (pero vacía) en Unix. Prefiera usar qunsetenv() para un comportamiento totalmente portable.

Nota: qputenv() se introdujo porque putenv() de la biblioteca estándar de C quedó obsoleta en VC2005 (y versiones posteriores). qputenv() utiliza la función de sustitución en VC, y llama a la implementación de la biblioteca estándar de C en el resto de plataformas.

Nota: En versiones de Qt anteriores a la 6.5, el argumento value era QByteArray, no QByteArrayView.

Véase también qgetenv() y qEnvironmentVariable().

bool qunsetenv(const char *varName)

Esta función elimina la variable varName del entorno.

Devuelve true en caso de éxito.

Véase también qputenv(), qgetenv() y qEnvironmentVariable().

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