PySide6.QtCore.QProcessEnvironment

class QProcessEnvironment

QProcessEnvironment 类保存可以传递给程序的环境变量。更多

在版本4.6中添加。

概要

方法

静态函数

注意

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

详细描述

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

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

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

在Windows上,变量名称是大小写不敏感的,但会保留大小写。QProcessEnvironment 的行为与此一致。

class Initialization

此枚举包含用于消除构造函数歧义的令牌。

常量

描述

QProcessEnvironment.InheritFromParent

一个 QProcessEnvironment 将被创建,当它被设置在一个 QProcess 上时,会导致它从其父进程继承变量。

在版本6.3中添加。

__init__()

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

__init__(arg__1)
Parameters:

arg__1初始化

创建一个对象,当设置在QProcess上时,将导致它从父进程继承环境变量来执行。

注意

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

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

__init__(other)
Parameters:

其他QProcessEnvironment

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

clear()

从此QProcessEnvironment对象中移除所有键值对,使其变为空。

如果环境是使用QProcessEnvironment::InheritFromParent构建的,它将保持不变。

contains(name)
Parameters:

name – str

Return type:

布尔

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

另请参阅

insert() value()

inheritsFromParent()
Return type:

布尔

如果此QProcessEnvironment是使用QProcessEnvironment::InheritFromParent构造的,则返回true

另请参阅

isEmpty()

insert(e)
Parameters:

eQProcessEnvironment

这是一个重载函数。

e的内容插入到此QProcessEnvironment对象中。此对象中与e中存在的变量将被覆盖。

insert(name, value)
Parameters:
  • name – str

  • value – str

将名为 name 的环境变量及其内容 value 插入到此 QProcessEnvironment 对象中。如果该变量已经存在,它将被新值替换。

在大多数系统中,插入一个没有内容的变量对应用程序的影响与根本没有设置该变量相同。然而,为了确保没有不兼容性,要删除一个变量,请使用remove()函数。

另请参阅

contains() remove() value()

isEmpty()
Return type:

布尔

如果这个QProcessEnvironment对象为空,则返回true:即没有设置任何键值对。

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

keys()
Return type:

字符串列表

返回一个包含此QProcessEnvironment对象中所有变量名称的列表。

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

__ne__(rhs)
Parameters:

rhsQProcessEnvironment

Return type:

布尔

如果进程环境对象 lhsrhs 不同,则返回 true

另请参阅

operator==()

__eq__(rhs)
Parameters:

rhsQProcessEnvironment

Return type:

布尔

如果进程环境对象 lhsrhs 相等,则返回 true

如果两个QProcessEnvironment对象具有相同的键值对集合,则认为它们是相等的。在环境变量区分大小写的平台上,键的比较是区分大小写的。

另请参阅

operator!=() contains()

remove(name)
Parameters:

name – str

从此QProcessEnvironment对象中移除由name标识的环境变量。如果该变量之前不存在,则不会发生任何变化。

另请参阅

contains() insert() value()

swap(other)
Parameters:

其他QProcessEnvironment

将此进程环境实例与other交换。此函数非常快速且永远不会失败。

static systemEnvironment()
Return type:

QProcessEnvironment

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

它作为QProcessEnvironment返回。此函数不缓存系统环境。因此,如果调用了像setenvputenv这样的低级C库函数,则有可能获得环境的更新版本。

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

另请参阅

systemEnvironment()

toStringList()
Return type:

字符串列表

将此QProcessEnvironment对象转换为字符串列表,每个设置的环境变量对应一个字符串。环境变量的名称和值之间用等号(‘=’)分隔。

此函数返回的QStringList内容适合用于展示。由于在Unix下可能存在编码问题以及性能较差,不建议与QProcess::setEnvironment函数一起使用。

value(name[, defaultValue=""])
Parameters:
  • name – str

  • defaultValue – str

Return type:

字符串

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