QProcessEnvironment Class

QProcessEnvironmentクラスは、プログラムに渡すことができる環境変数を保持します。詳細...

Header: #include <QProcessEnvironment>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

このクラスは等価比較可能です。

注意:このクラスの関数はすべてリエントラントです。

パブリック型

(since 6.3) enum Initialization { InheritFromParent }

パブリック関数

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)

静的パブリック・メンバ

QProcessEnvironment systemEnvironment()
bool operator!=(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)
bool operator==(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)

詳細説明

プロセスの環境は、環境変数として知られるキーと値のペアのセットで構成されます。QProcessEnvironment クラスはこの概念をラップし、これらの変数を簡単に操作できるようにします。このクラスは、子プロセスの環境を設定するためにQProcess と共に使用されます。現在のプロセスの環境を変更するために使用することはできません。

呼び出し元プロセスの環境は、QProcessEnvironment::systemEnvironment ()を使用して取得できる。

Unixシステムでは、変数名の大文字と小文字は区別される。Unix環境では、変数名と内容の両方に任意のバイナリ・データ(NUL文字を除く)を含めることができることに注意してください。QProcessEnvironment はそのような変数を保持しますが、現在のロケール設定でエンコードできない名前や値を持つ変数の操作はサポートしていません (QString::toLocal8Bit を参照)。

Windows では、変数名の大文字と小文字は区別されませんが、大文字と小文字は区別されます。QProcessEnvironment はそれに従って動作します。

QProcessQProcess::systemEnvironment()、QProcess::setProcessEnvironment()も参照してください

メンバ型のドキュメント

[since 6.3] enum QProcessEnvironment::Initialization

この列挙型には、コンストラクタの曖昧さをなくすために使用されるトークンが含まれます。

定数説明
QProcessEnvironment::InheritFromParent0QProcess に設定すると、親から変数を継承するQProcessEnvironment が作成されます。

この列挙型は Qt 6.3 で導入されました。

メンバー関数 ドキュメント

QProcessEnvironment::QProcessEnvironment()

新しい QProcessEnvironment オブジェクトを作成します。このコンストラクタは空の環境を作成します。QProcess に設定すると、現在の環境変数が削除されます(Windows の PATH と SystemRoot を除く)。

[noexcept, since 6.3] QProcessEnvironment::QProcessEnvironment(QProcessEnvironment::Initialization)

QProcess に設定すると、親プロセスから継承した環境変数で実行されるオブジェクトを作成します。

注意: 作成されたオブジェクトは、それ自体で環境変数を格納するわけではなく、新しいプロセスが開始されるときに環境を継承するようにQProcess に指示するだけである。作成されたオブジェクトに環境変数を追加すると、環境の継承が無効になり、追加した環境変数のみを含む環境になります。

親プロセスの環境を変更したい場合は、systemEnvironment() の戻り値から開始し、それを変更します(ただし、作成後に親プロセスの環境を変更しても、変更後の環境には反映されないことに注意してください)。

この関数は Qt 6.3 で導入されました。

inheritsFromParent() およびsystemEnvironment()も参照してください

QProcessEnvironment::QProcessEnvironment(const QProcessEnvironment &other)

other のコピーである QProcessEnvironment オブジェクトを作成します。

[noexcept] QProcessEnvironment::~QProcessEnvironment()

このQProcessEnvironment オブジェクトに関連付けられているリソースを解放します。

void QProcessEnvironment::clear()

このQProcessEnvironment オブジェクトからすべての key=value ペアを削除して空にします。

環境がQProcessEnvironment::InheritFromParent を使用して構築された場合、それは変更されません。

isEmpty() およびsystemEnvironment()も参照

bool QProcessEnvironment::contains(const QString &name) const

name という名前の環境変数がこのQProcessEnvironment オブジェクトで見つかった場合、true を返す。

insert() およびvalue() も参照

[since 6.3] bool QProcessEnvironment::inheritsFromParent() const

このQProcessEnvironmentQProcessEnvironment::InheritFromParent を使って構築された場合はtrue を返します。

この関数は Qt 6.3 で導入されました。

isEmpty()も参照して ください。

void QProcessEnvironment::insert(const QString &name, const QString &value)

名前name と内容value の環境変数を、このQProcessEnvironment オブジェクトに挿入します。その変数がすでに存在する場合は、新しい値で置き換えられます。

ほとんどのシステムでは、内容のない変数を挿入しても、アプリケーションにとっては、変数がまったく設定されていないのと同じ効果がある。しかし、非互換性がないことを保証するために、変数を削除するにはremove() 関数を使用してください。

contains ()、remove ()、value)も参照

void QProcessEnvironment::insert(const QProcessEnvironment &e)

これはオーバーロードされた関数です。

QProcessEnvironment オブジェクトにe の内容を挿入します。e にも存在するこのオブジェクトの変数は上書きされます。

bool QProcessEnvironment::isEmpty() const

QProcessEnvironment オブジェクトが空の場合、true を返します。

このメソッドは、QProcessEnvironment::InheritFromParent を使用して構築されたオブジェクトについてもtrue を返します。

clear()、systemEnvironment()、insert()、inheritsFromParent()も参照

QStringList QProcessEnvironment::keys() const

このQProcessEnvironment オブジェクトのすべての変数名を含むリストを返します。

QProcessEnvironment::InheritFromParent を使用して構築されたオブジェクトでは、返されるリストは空です。

void QProcessEnvironment::remove(const QString &name)

QProcessEnvironment オブジェクトからname で指定された環境変数を削除する。その変数が存在しない場合は、何も起こりません。

contains()、insert()、value()も参照

[noexcept] void QProcessEnvironment::swap(QProcessEnvironment &other)

このプロセス環境インスタンスをother と交換する。この関数は非常に高速で、失敗することはありません。

[static] QProcessEnvironment QProcessEnvironment::systemEnvironment()

systemEnvironment関数は、呼び出し元のプロセスの環境を返します。

QProcessEnvironmentこの関数はシステム環境をキャッシュしません。したがって、setenvputenv のような低レベルの C ライブラリ関数が呼び出された場合、環境の更新バージョンを取得することが可能です。

ただし、この関数を繰り返し呼び出すと、QProcessEnvironment オブジェクトが再作成され、これは自明な操作ではないことに注意。

QProcess::systemEnvironment()も参照のこと

QStringList QProcessEnvironment::toStringList() const

このQProcessEnvironment オブジェクトを、設定されている環境変数ごとに1つずつ、文字列のリストに変換する。環境変数の名前とその値は、等号 ('=') で区切られる。

この関数が返すQStringList の内容は、プレゼンテーションに適しています。QProcess::setEnvironment関数との併用は、Unix環境ではエンコーディングの問題が発生する可能性があり、パフォーマンスも低下するため推奨されません。

systemEnvironment()、QProcess::systemEnvironment() およびQProcess::setProcessEnvironment()も参照

QString QProcessEnvironment::value(const QString &name, const QString &defaultValue = QString()) const

このQProcessEnvironment オブジェクトからname で指定された変数を検索し、その値を返す。その変数がこのオブジェクトに見つからない場合は、代わりにdefaultValue が返される。

contains()、insert()、remove()も参照

QProcessEnvironment &QProcessEnvironment::operator=(const QProcessEnvironment &other)

other QProcessEnvironment オブジェクトの内容をこのオブジェクトにコピーします。

関連する非メンバー

[noexcept] bool operator!=(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)

プロセス環境オブジェクトlhsrhs が異なる場合、true を返します。

operator==()も参照して ください。

[noexcept] bool operator==(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)

プロセス環境オブジェクトlhsrhs が等しい場合、true を返します。

2つのQProcessEnvironment オブジェクトは、key=value ペアのセットが同じであれば等しいとみなされます。キーの比較は、環境の大文字と小文字が区別されるプラットフォームでは、大文字と小文字が区別されます。

operator!=() とcontains()も参照してください

本書に含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。