class QProcessEnvironment#

QProcessEnvironment类保存可以传递给程序的环...

新添于版本4.6。

概述#

方法#

静态函数#

说明

本文档可能包含自动从C++翻译为Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来通知我们。

详细描述#

进程的环境由一组名为环境变量的键=value对组成。QProcessEnvironment类封装了这个概念,并允许轻松操作这些变量。它旨在与QProcess一起使用,为子进程设置环境。它不能用于更改当前进程的环境。

可以使用systemEnvironment()获取调用进程的环境。

在Unix系统中,变量名是区分大小写的。请注意,Unix环境允许变量名和内容包含任意二进制数据(除了NUL字符)。QProcessEnvironment将保留这样的变量,但不支持操作无法由当前区域设置编码的变量名或值(请参阅toLocal8Bit)。

在Windows上,变量名不区分大小写,但保留大小写。QProcessEnvironment的行为与此一致。

class Initialization#

此枚举包含用于区分构造函数的令牌。

常量

描述

QProcessEnvironment.InheritFromParent

将创建一个 QProcessEnvironment 对象,当将之设置为 QProcess 时,它会从父进程继承变量。

新自版本 6.3。

__init__(arg__1)#
参数::

arg__1Initialization

创建一个对象,当设置到 QProcess 上时,将在启动新进程时从父进程继承环境变量执行。

说明

创建的对象不会存储任何环境变量,它只指示 QProcess 在新进程启动时安排继承环境。将任何环境变量添加到创建的对象中将禁用环境继承,并将导致只包含添加的环境变量的环境。

如果要修改父环境的版本,请从 systemEnvironment() 的返回值开始并修改它(但请注意,在创建之后对父进程环境的修改将不会反映在修改后的环境中)。

__init__(other)
参数::

otherQProcessEnvironment

创建一个 QProcessEnvironment 对象,它是 other 的副本。

__init__()

创建一个新的 QProcessEnvironment 对象。这个构造函数创建一个空的环境。如果设置到 QProcess 上,这将导致移除当前的变量(除了 Windows 上的 PATH 和 SystemRoot)。

clear()#

从这个 QProcessEnvironment 对象中移除所有键值对,使它为空。

如果环境使用 QProcessEnvironment::InheritFromParent 构造,它保持不变。

contains(name)#
参数::

name - 字符串

返回类型

布尔型

如果在这个 QProcessEnvironment 对象中找到名为 name 的环境变量,则返回 true

另请参阅

insert() value()

inheritsFromParent()#
返回类型

布尔型

如果此 QProcessEnvironment 使用 QProcessEnvironment::InheritFromParent 构建,则返回 true

另请参阅

isEmpty()

insert(e)#
参数::

e - QProcessEnvironment

这是一个重载函数。

e 的内容插入到这个 QProcessEnvironment 对象中。在此对象中已存在的变量如果也在 e 中,则会被覆盖。

insert(name, value)
参数::
  • name - 字符串

  • value - 字符串

将名为 name 并包含内容 value 的环境变量插入到这个 QProcessEnvironment 对象中。如果该变量已存在,则被新值替换。

在大多数系统中,插入一个没有内容的变量将使应用程序的效果与根本未设置该变量相同。但是,为了确保没有不兼容性,请使用 remove() 函数来删除变量。

另请参阅

contains() remove() value()

isEmpty()#
返回类型

布尔型

如果此 QProcessEnvironment 对象为空(即没有设置 key=value 对)则返回 true

该方法也会对使用 QProcessEnvironment::InheritFromParent 构造的对象返回 true

keys()#
返回类型

字符串列表

返回此 QProcessEnvironment 对象中所有变量名的列表。

使用 QProcessEnvironment::InheritFromParent 构造的对象返回的列表为空。

__ne__(other)#
参数::

otherQProcessEnvironment

返回类型

布尔型

如果此和 other QProcessEnvironment 对象不同,则返回 true

另请参阅

operator==()

__eq__(other)#
参数::

otherQProcessEnvironment

返回类型

布尔型

如果此和 other QProcessEnvironment 对象相等,则返回 true

如果两个 QProcessEnvironment 对象具有相同的 key=value 对集合,则认为它们相等。关键字比较是在那些区分大小写的平台上区分大小写的。

另请参阅

operator!=() contains()

remove(name)#
参数::

name - 字符串

从本 QProcessEnvironment 对象中删除由 name 标识的环境变量。如果该变量之前不存在,则不执行任何操作。

另请参阅

contains() insert() value()

swap(other)#
参数::

otherQProcessEnvironment

将此进程环境实例与 other 交换。该函数执行速度快,且不会失败。

静态 systemEnvironment()#
返回类型

QProcessEnvironment

systemEnvironment 函数返回调用进程的环境。

它被作为 QProcessEnvironment 返回。此函数不缓存系统环境。因此,如果已调用诸如 setenvputenv 的低级 C 库函数,则可以获取环境的更新版本。

但是,请注意,重复调用此函数将重新创建 QProcessEnvironment 对象,这是一项非平凡的操作。

另请参阅

systemEnvironment()

toStringList()#
返回类型

字符串列表

将此 QProcessEnvironment 对象转换为字符串列表,每个环境变量一个字符串。环境变量的名称和其值由等号(=)分隔。

此函数返回的 QStringList 内容适合于展示。由于在 Unix 下的潜在编码问题和更差的性能,不推荐与 QProcess::setEnvironment 函数一起使用。

value(name[, defaultValue=""])#
参数::
  • name - 字符串

  • defaultValue – str

返回类型

str

搜索此 QProcessEnvironment 对象中由 name 标识的变量,并返回其值。如果在此对象中未找到该变量,则返回 defaultValue