class QUuid#

QUuid 类存储通用唯一标识符(UUID)。更多信息...

继承自: QBluetoothUuid

概述#

方法#

静态函数#

注意

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

详细描述#

使用通用唯一标识符(UUID)是分布式计算环境中唯一标识实体的标准方式。UUID是通过某种算法生成的16字节(128位)数值,旨在保证该UUID在使用的分布式计算环境中唯一。通常使用GUID代表它,全球唯一标识符,但它指的是同一事物。

实际上,GUID是UUID的一种变体。存在多个变体。每个UUID包含一个位字段,用于指定UUID的类型(变体)。调用variant()以发现QUuid实例包含哪种类型的UUID。它提取字节8中的三个最高有效位。在QUuid中,字节8是QUuid::data4[0]。如果您使用接受所有数值参数的构造函数创建QUuid实例,请使用以下表格来设置参数b1的三个最高有效位,该参数将变为QUuid::data4[0],并在其三个最高有效位中包含变体字段。在表中,“x”表示无关紧要

最高有效位0

最高有效位1

最高有效位2

变体

0

x

x

NCS (网络计算系统)

1

0

x

DCE (分布式计算环境)

1

1

0

Microsoft (GUID)

1

1

1

保留以供将来扩展

如果variant()返回DCE,则UUID还包含在QUuid::data3的最高四位中的版本字段,您可以调用version()来发现您的QUuid包含哪个版本。如果您使用接受所有数值参数的构造函数创建QUuid实例,请使用以下表格来设置参数w2的最高四位,该参数将变为QUuid::data3,并在其最高四位中包含版本字段。

最高有效位0

最高有效位1

最高有效位2

最高有效位3

版本

0

0

0

1

时间

0

0

1

0

嵌入式 POSIX

0

0

1

1

Md5(名称)

0

1

0

0

随机

0

1

0

1

Sha1

表中选择列出的DCE版本的字段布局在《网络工作组UUID规范》中指定。

大多数平台都提供了一种生成新UUID的工具,例如 uuidgenguidgen。你也可以使用 createUuid() 。由 createUuid() 生成的UUID是随机类型的。它们的 Version 位被设置为 Random ,它们的 Variant 位被设置为 DCE 。UUID的其余部分由随机数组成。从理论上讲,这意味着由 createUuid() 生成的UUID不唯一的机会很小。但它是一个非常 ` <http://en.wikipedia.org/wiki/Universally_Unique_Identifier#Random_UUID_probability_of_duplicates>`_ 小的机会。

UUID可以从数值或字符串构建,也可以使用静态的 createUuid() 函数。它们可以用 toString() 转换为字符串。UUID有一个 variant() 和一个 version() ,空UUID从 isNull() 返回 true。

class Variant#

此枚举定义了UUID中 variant field 所使用的值。变体字段中的值决定了128位值的布局。

常量

描述

QUuid.VarUnknown

变体未知

QUuid.NCS

为NCS(网络计算系统)向后兼容保留

QUuid.DCE

分布式计算环境,由 QUuid 使用的方案

QUuid.Microsoft

为Microsoft向后兼容(GUID)保留

QUuid.Reserved

为未来定义保留

class Version#

此枚举定义了用于UUID的version字段的值。如果variant字段的值是DCE,则版本字段才有意义。

常量

描述

QUuid.VerUnknown

版本未知

QUuid.Time

基于时间,使用时间戳、时钟序列和MAC网络卡地址(如果可用)进行节点段

QUuid.EmbeddedPOSIX

DC安全版本,包含嵌入式POSIX UUIDs

QUuid.Name

基于名称,使用名称的值进行所有段

QUuid.Md5

名称的别名

QUuid.Random

基于随机数,用于所有段

QUuid.Sha1

class StringFormat#

此枚举由toString (StringFormat)使用,以控制字符串表示法格式。可能的值包括

常量

描述

QUuid.WithBraces

默认值,toString()将返回五个由破折号分隔的十六进制字段,并用大括号括起来。例如:{00000000-0000-0000-0000-000000000000}。

QUuid.WithoutBraces

只有五个由破折号分隔的字段,没有大括号。例如:00000000-0000-0000-0000-000000000000。

QUuid.Id128

只有十六进制数字,没有大括号或破折号。注意,QUuid无法再次解析为输入。

__init__(string)#
参数::

string – str

从字符串text创建一个QUuid对象,该字符串必须格式化为五个由破折号分隔的十六进制字段,例如,“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”,其中每个“x”都是一个十六进制数字。此处显示的大括号是可选的,但通常包括它们。如果转换失败,则创建一个null UUID。有关五个十六进制字段如何映射到QUuid中的公共数据成员的解释,请参阅toString()

注意

在Qt 6.3之前的版本中,此构造函数是一个由QStringQByteArrayconst char*组成的重载集,而不是一个采用QAnyStringView的构造函数。

另请参阅

toString() QUuid()

__init__(l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
参数::
  • l – int

  • w1 – int

  • w2 – int

  • b1 – int

  • b2 – int

  • b3 – int

  • b4 – int

  • b5 – int

  • b6 – int

  • b7 – int

  • b8 – int

警告

本节包含从C++自动翻译到Python的代码片段,可能存在错误。

根据参数l、w1、w2、b1、b2、b3、b4、b5、b6、b7、b8的值创建一个UUID。

示例

# {67C8770B-44F1-410A-AB9A-F9B5446F13EE}
IID_MyInterface = QUuid(0x67c8770b, 0x44f1, 0x410a, 0xab, 0x9a, 0xf9, 0xb5, 0x44, 0x6f, 0x13, 0xee)
__init__()

创建空UUID。 toString() 将输出空UUID为“{00000000-0000-0000-0000-000000000000}”。

__reduce__()#
返回类型:object

object

__repr__()#
返回类型:object

object

静态createUuid()#
返回类型:object

QUuid

在除Windows之外的所有平台上,该函数返回一个具有变体DCE和版本随机的新UUID。在Windows上,使用Windows API生成GUID,其类型由API决定。

另请参阅

variant() version()

static createUuidV3(ns, baseData)<#>
参数::
返回类型:object

QUuid

此函数返回一个新的UUID,其变体为 DCE,版本为 Md5。`ns` 是命名空间,而 `baseData` 是按照RFC 4122描述的基本数据。

static createUuidV3(ns, baseData)
参数::
  • nsQUuid

  • baseData – 字符串 (str)

返回类型:object

QUuid

此函数返回一个新的UUID,其变体为 DCE,版本为 Md5。`ns` 是命名空间,而 `baseData` 是按照RFC 4122描述的基本数据。

static createUuidV5(ns, baseData)<#>
参数::
返回类型:object

QUuid

此函数返回一个新的UUID,其变体为 DCE,版本为 Sha1。`ns` 是命名空间,而 `baseData` 是按照RFC 4122描述的基本数据。

static createUuidV5(ns, baseData)
参数::
  • nsQUuid

  • baseData – 字符串 (str)

返回类型:object

QUuid

此函数返回一个新的UUID,其变体为 DCE,版本为 Sha1。`ns` 是命名空间,而 `baseData` 是按照RFC 4122描述的基本数据。

static fromBytes(bytes[, order=QSysInfo.BigEndian])<#>
参数::
  • bytesvoid

  • orderEndian

返回类型:object

QUuid

使用字节顺序 orderbytes 中读取 128 位(16 字节),并返回对应的 QUuid。此函数执行的操作与如果字节顺序 orderBigEndian 时的 fromRfc4122() 相同。

另请参阅

fromRfc4122()

静态 fromRfc4122(arg__1)#
参数::

arg__1QByteArrayView

返回类型:object

QUuid

从符合 RFC 4122 第 4.1.2 节的 UUID 二进制表示中创建 QUuid 对象。有关对所需 bytes 顺序的进一步解释,请参阅 toRfc4122()

接受的字节数组不是人可读格式。

如果转换失败,将创建一个空的 UUID。

注意

在 Qt 6.3 之前的版本中,此函数接受 QByteArray ,而不是 QByteArrayView

另请参阅

toRfc4122() QUuid() fromBytes()

静态 fromString(string)#
参数::

string – str

返回类型:object

QUuid

从字符串 string 创建 QUuid 对象,该字符串必须格式化为以“-”分隔的五个十六进制字段,例如,“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”,其中每个“x”都是十六进制数字。这里显示的花括号是可选的,但通常包括它们。如果转换失败,则返回空 UUID。关于五个十六进制字段如何映射到 QUuid 中的公共数据成员,请参阅 toString() 的解释。

注意

在 Qt 6.3 之前的版本中,这个函数是一个由 QStringViewQLatin1StringView 组成的重载集合,而不是一个接受 QAnyStringView 的单一函数。

另请参阅

toString() QUuid()

isNull()#
返回类型:object

布尔值

如果这是一个 null UUID {00000000-0000-0000-0000-000000000000},则返回 true;否则返回 false

__ne__(orig)#
参数::

origQUuid

返回类型:object

布尔值

如果这个 QUuid 和另一个 QUuid 不同,则返回 true;否则返回 false

__lt__(other)#
参数::

otherQUuid

返回类型:object

布尔值

如果这个 QUuid 与另一个 QUuid 具有相同的变体字段,并且在字典序上 先于 另一个 QUuid,则返回 true。如果另一个 QUuid 具有不同的变体字段,则根据比较两个 variants 的结果确定返回值。

另请参阅

variant()

__le__(rhs)#
参数::

rhsQUuid

返回类型:object

布尔值

返回true,如果lhsrhs具有相同的variant field,并且在字典序上不排在rhs之后。如果rhs有不同的变体字段,则返回值由比较这两个variants来决定。

另请参阅

variant()

__eq__(orig)#
参数::

origQUuid

返回类型:object

布尔值

如果这个QUuid和另一个QUuid相同,则返回true;否则返回false

__gt__(other)#
参数::

otherQUuid

返回类型:object

布尔值

如果这个QUuid与另一个QUuid具有相同的variant field,并且在字典序上排在另一个之后,则返回true。如果另一个QUuid有不同的变体字段,则返回值由比较这两个variants来决定。

另请参阅

variant()

__ge__(rhs)#
参数::

rhsQUuid

返回类型:object

布尔值

返回true,如果lhsrhs具有相同的variant field,并且在字典序上不排在rhs之前。如果rhs有不同的变体字段,则返回值由比较这两个variants来决定。

另请参阅

variant()

toByteArray([mode=QUuid.StringFormat.WithBraces])#
参数::

模式StringFormat

返回类型:object

QByteArray

返回此 QUuid 的字符串表示形式,格式由 mode 参数控制。从左到右,五个十六进制字段按以下方式从 QUuid 的四个公共数据成员获取

字段编号

来源

1

data1

2

data2

3

data3

4

data4[0] .. data4[1]

5

data4[2] .. data4[7]

toRfc4122()#
返回类型:object

QByteArray

返回此 QUuid 的二进制表示。字节数组为大端格式,并按RFC 4122的第4.1.2节“布局和字节序”进行格式化。

顺序如下

字段编号

来源

1

data1

2

data2

3

data3

4

data4[0] .. data4[7]

此函数返回的字节数组中的字节包含与 toBytes() 一样的二进制内容。

另请参阅

toBytes()

toString([mode=QUuid.StringFormat.WithBraces])#
参数::

模式StringFormat

返回类型:object

str

返回此 QUuid 的字符串表示形式,格式由 mode 参数控制。从左到右,五个十六进制字段按以下方式从 QUuid 的四个公共数据成员获取

字段编号

来源

1

data1

2

data2

3

data3

4

data4[0] .. data4[1]

5

data4[2] .. data4[7]

variant()#
返回类型:object

变体

返回UUID的 variant 字段 中的值。如果返回值是 DCE ,则调用 version() 以查看它使用哪种布局。空UUID被认为是一种未知变体。

另请参阅

version()

version()#
返回类型:object

版本

如果UUID的 variant 字段DCE ,则返回UUID的 version 字段 。否则返回 VerUnknown

另请参阅

variant()