<QtEnvironmentVariables>プロキシページ

関数

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)

関数のドキュメント

QString qEnvironmentVariable(const char *varName)

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

これらの関数は、環境変数varName の値をQString として返す。環境変数varName が見つからず、defaultValue が指定された場合、defaultValue が返される。それ以外の場合は QString() が返されます。

Qt の環境操作関数はスレッドセーフですが、そのためには getenv や putenv のような C ライブラリの同等関数を直接呼び出さない必要があります。

次の表は、qgetenv() とqEnvironmentVariable() のどちらを選ぶかを説明しています:

条件推奨
変数にファイル・パスまたはユーザー・テキストが含まれているqEnvironmentVariable()
Windows固有のコードqEnvironmentVariable()
Unix 固有のコード、目的変数がQString でない、および/または Qt 以外の API とのインターフェイスに使用されるqgetenv()
出力先変数がQStringqEnvironmentVariable()
出力先変数がQByteArray または std::stringqgetenv()

注意: Unixシステムでは、元の文字列がロケールコーデックでデコードできない任意のバイナリデータを含んでいる場合、この関数はデータロスを生じる可能性があります。その場合は、代わりにqgetenv() を使用する。Windowsでは、この関数はロスレスである。

注意: 変数名varName は、US-ASCII文字のみを含んでいなければならない。

qputenv()、qgetenv()、qEnvironmentVariableIsSet()、qEnvironmentVariableIsEmpty()も参照

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

環境変数varName の数値を返す。ok が NULL でない場合、変換の成功に応じて*oktrue またはfalse に設定する。

と同等です。

    qgetenv(varName).toInt(ok, 0)

と同等ですが、より高速で、例外をスローできません。

注意: 値の長さには制限があり、先頭のゼロや空白を除いたintのすべての有効な値に対して十分です。長すぎる値は切り捨てられるか、この関数はokfalse に設定する。

qgetenv()、qEnvironmentVariable()、qEnvironmentVariableIsSet()も参照の こと。

[noexcept] bool qEnvironmentVariableIsEmpty(const char *varName)

環境変数varName が空かどうかを返す。

と同じです。

    qgetenv(varName).isEmpty()

と同等ですが、より高速になる可能性があり、例外をスローできません。

qgetenv(),qEnvironmentVariable(),qEnvironmentVariableIsSet()も参照

[noexcept] bool qEnvironmentVariableIsSet(const char *varName)

環境変数varName が設定されているかどうかを返す。

と同じです。

    !qgetenv(varName).isNull()

と同等ですが、より高速になる可能性があり、例外をスローできません。

qgetenv(),qEnvironmentVariable(),qEnvironmentVariableIsEmpty()も参照

QByteArray qgetenv(const char *varName)

varName という名前の環境変数の値をQByteArray として返します。 この名前の変数が環境内に見つからない場合、この関数はデフォルトで構築されたQByteArray を返します。

Qt の環境操作関数はスレッドセーフですが、そのためには getenv や putenv のような C ライブラリの同等の関数を直接呼び出さない必要があります。

データをQString に変換するには、QString::fromLocal8Bit() を使用します。

注意: デスクトップWindowsでは、元の文字列がANSIエンコーディングで表現できないUnicode文字を含んでいる場合、qgetenv()でデータが失われることがあります。代わりにqEnvironmentVariable() を使用する。Unixシステムでは、この関数はロスレスである。

注意:この関数はスレッドセーフです。

qputenv()、qEnvironmentVariable()、qEnvironmentVariableIsSet()、qEnvironmentVariableIsEmpty()も参照

bool qputenv(const char *varName, QByteArrayView value)

この関数はvarName という環境変数のvalue を設定する。変数が存在しない場合は作成される。変数を設定できなかった場合は0を返す。

空の値でqputenvを呼び出すと、Windowsでは環境変数が削除され、Unixでは設定される(ただし空)。完全にポータブルな動作のためには、qunsetenv() を使うことを推奨する。

注意: qputenv() が導入されたのは、標準 C ライブラリの putenv() が VC2005 (およびそれ以降のバージョン) で非推奨になったためです。qputenv() は VC では置換関数を使用し、その他のプラットフォームでは標準 C ライブラリの実装を呼び出します。

注意: Qt 6.5 より前のバージョンでは、value 引数はQByteArrayView ではなくQByteArray でした。

qgetenv() とqEnvironmentVariable()も参照してください

bool qunsetenv(const char *varName)

この関数は環境変数varName を削除する。

成功するとtrue を返す。

qputenv()、qgetenv() および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.