QProcessEnvironment 类
QProcessEnvironment 类包含可以传递给程序的环变量。 更多...
头文件 | #include <QProcessEnvironment> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
- 包括继承成员在内的所有成员列表
- QProcessEnvironment 是 输入/输出和网络 以及 隐式共享类 的部分。
注意: 这个类中的所有函数都是 可重入的。
公共类型
(since 6.3) 枚举 | 初始化 { 从父类继承 } |
公共函数
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 |
bool | operator!=(const QProcessEnvironment &other) const |
QProcessEnvironment & | operator=(const QProcessEnvironment &other) |
bool | operator==(const QProcessEnvironment &other) const |
静态公共成员
QProcessEnvironment | systemEnvironment() |
详细描述
进程的环境是由一组键=值对组成的,称为环境变量。QProcessEnvironment 类包装了这个概念,并可以轻松地对这些变量进行操作。它打算与 QProcess 一起使用,以设置子进程的环境。它不能用来更改当前进程的环境。
可以使用 QProcessEnvironment::systemEnvironment()() 获取调用进程的环境。
在 Unix 系统上,变量名是区分大小写的。请注意,Unix 环境允许变量名和内容包含任意二进制数据(除了空字符 NUL)。QProcessEnvironment 将保留此类变量,但不起支持不能由当前区域设置编码的变量名或值(参见 QString::toLocal8Bit)。
在 Windows 上,变量名是不区分大小写的,但会保留大小写。QProcessEnvironment 的行为与此一致。
另请参阅 QProcess、QProcess::systemEnvironment() 和 QProcess::setProcessEnvironment()。
成员类型文档
[自 6.3 版起]
枚举 QProcessEnvironment::Initialization
此枚举包含一个用于区分构造函数的标记。
常数 | 值 | 描述 |
---|---|---|
QProcessEnvironment::InheritFromParent | 0 | 创建一个 QProcessEnvironment,当设置在一个 QProcess 上时,将从父进程继承变量。 |
此枚举是在 Qt 6.3 中引入的。
成员函数文档
QProcessEnvironment::QProcessEnvironment()
创建一个新的 QProcessEnvironment 对象。此构造函数创建一个空环境。如果将此对象设置为 QProcess,则将导致当前环境变量被删除(Windows 上的 PATH 和 SystemRoot 除外)。
[noexcept,自 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 对象中删除所有键=值对,使其变为空。
如果环境是使用 QProcessEnvironment::InheritFromParent
创建的,它保持不变。
另请参阅isEmpty() 和 systemEnvironment()。
bool QProcessEnvironment::contains(const QString &name) const
如果在此 QProcessEnvironment 对象中找到名为 name 的环境变量,则返回 true
。
[自6.3版本开始]
bool QProcessEnvironment::inheritsFromParent() const
如果此 QProcessEnvironment 是使用 QProcessEnvironment::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)
这是一个重载函数。
将 e 的内容插入至此 QProcessEnvironment 对象中。此对象中也存在的变量将被覆盖。
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。此函数执行非常快,永远不会失败。
[静态]
QProcessEnvironment QProcessEnvironment::systemEnvironment()
systemEnvironment 函数返回调用进程的环境。
它作为 QProcessEnvironment 返回。此函数不缓存系统环境。因此,如果已调用低级 C 库函数如 setenv
或 putenv
,则可以获取环境的更新版本。
但是,请注意,对这一函数的重复调用将重新创建 QProcessEnvironment 对象,这是一个非 routine 的操作。
参见QProcess::systemEnvironment。
QStringList QProcessEnvironment::toStringList() const
将此 QProcessEnvironment 对象转换为字符串列表,每个环境变量的名称和一个等于字符('=')分隔其值。
此函数返回的 QStringList 内容适合于展示。由于潜在的编码问题和较差的性能,不建议与 QProcess::setEnvironment 函数一起使用。
参见systemEnvironment,QProcess::systemEnvironment 和 QProcess::setProcessEnvironment。
QString QProcessEnvironment::value(const QString &name, const QString &defaultValue = QString()) const
在此 QProcessEnvironment 对象中搜索由 name 标识的变量,并返回其值。如果在此对象中找不到该变量,则返回 defaultValue 而不是值。
bool QProcessEnvironment::operator!=(const QProcessEnvironment &other) const
如果此对象与 other 对象不同,则返回 true
。
参见operator==。
QProcessEnvironment &QProcessEnvironment::operator=(const QProcessEnvironment &other)
将 other 对象的内容复制到当前对象中。
bool QProcessEnvironment::operator==(const QProcessEnvironment &other) const
如果此对象与 other 对象相等,则返回 true
。
如果有相同的键=值对集合,认为两个 QProcessEnvironment 对象是相等的。在环境区分大小写的平台上,按大小写敏感的方式比较键。
另请参阅 operator!=() 和 contains()。
© 2024 Qt公司有限公司。本文档中包含的文档贡献为各自所有者的版权。本提供的文档是根据自由软件基金会发布的 GNU自由文档许可协议版本1.3 条款许可的。Qt以及相应的标志是芬兰的Qt公司及其在全球其他国家的商标。所有其他商标均为其各自所有者的财产。