PySide6.QtCore.QUuid

class QUuid

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

继承者: QBluetoothUuid

概要

方法

静态函数

注意

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

详细描述

使用Universally Unique IDentifiers(UUID)是在分布式计算环境中唯一标识实体的标准方法。UUID是由某些算法生成的16字节(128位)数字,旨在保证UUID在其使用的分布式计算环境中是唯一的。通常使用缩写GUID代替,Globally Unique IDentifiers,但它指的是同一事物。

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

msb0

msb1

msb2

变体

0

x

x

NCS (网络计算系统)

1

0

x

DCE(分布式计算环境)

1

1

0

微软 (GUID)

1

1

1

保留以供未来扩展

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

msb0

msb1

msb2

msb3

版本

0

0

0

1

时间

0

0

1

0

嵌入式POSIX

0

0

1

1

Md5(Name)

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字段使用的值。variant字段中的值决定了128位值的布局。

常量

描述

QUuid.VarUnknown

变量未知

QUuid.NCS

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

QUuid.DCE

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

QUuid.Microsoft

保留用于Microsoft向后兼容性(GUID)

QUuid.Reserved

保留以供未来定义

class Version

此枚举定义了UUID中version field字段使用的值。只有在variant field字段的值为DCE时,版本字段才有意义。

常量

描述

QUuid.VerUnknown

版本未知

QUuid.Time

基于时间,通过使用时间戳、时钟序列和MAC网卡地址(如果可用)来生成节点部分

QUuid.EmbeddedPOSIX

DCE 安全版本,带有嵌入式 POSIX UUID

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__()

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

__init__(string)
Parameters:

字符串 – str

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

注意

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

另请参阅

toString() QUuid()

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

  • w1 – 整数

  • w2 – 整数

  • b1 – 整数

  • b2 – 整数

  • b3 – 整数

  • b4 – 整数

  • b5 – 整数

  • b6 – 整数

  • b7 – 整数

  • b8 – 整数

警告

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

使用参数指定的值创建一个UUID,l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8

示例:

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

字符串

__repr__()
Return type:

字符串

static createUuid()
Return type:

QUuid

在除Windows以外的任何平台上,此函数返回一个具有DCE变体和Random版本的新UUID。在Windows上,使用Windows API生成GUID,并且将是API决定创建的类型。

另请参阅

variant() version()

static createUuidV3(ns, baseData)
Parameters:
  • nsQUuid

  • baseDataQByteArrayView

Return type:

QUuid

此函数返回一个新的UUID,其变体为DCE,版本为Md5ns是命名空间,baseData是RFC 4122中描述的基本数据。

注意

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

static createUuidV5(ns, baseData)
Parameters:
  • nsQUuid

  • baseDataQByteArrayView

Return type:

QUuid

此函数返回一个具有变体DCE和版本Sha1的新UUID。ns是命名空间,baseData是RFC 4122中描述的基本数据。

注意

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

static fromBytes(bytes[, order=QSysInfo.BigEndian])
Parameters:
  • bytesvoid

  • orderEndian

Return type:

QUuid

bytes中读取128位(16字节)数据,使用字节顺序order,并返回与这些字节对应的QUuid。如果字节顺序orderBigEndian,此函数与fromRfc4122()的功能相同。

另请参阅

fromRfc4122()

static fromRfc4122(bytes)
Parameters:

字节QByteArrayView

Return type:

QUuid

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

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

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

注意

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

另请参阅

toRfc4122() QUuid() fromBytes()

static fromString(string)
Parameters:

字符串 – str

Return type:

QUuid

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

注意

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

另请参阅

toString() QUuid()

isNull()
Return type:

布尔

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

__ne__(rhs)
Parameters:

rhsQUuid

Return type:

布尔

如果 lhs QUuidrhs QUuid 不同,则返回 true;否则返回 false

__lt__(rhs)
Parameters:

rhsQUuid

Return type:

布尔

__le__(rhs)
Parameters:

rhsQUuid

Return type:

布尔

__eq__(rhs)
Parameters:

rhsQUuid

Return type:

布尔

如果 lhs QUuidrhs QUuid 相同,则返回 true;否则返回 false

__gt__(rhs)
Parameters:

rhsQUuid

Return type:

布尔

__ge__(rhs)
Parameters:

rhsQUuid

Return type:

布尔

toByteArray([mode=QUuid.StringFormat.WithBraces])
Parameters:

modeStringFormat

Return type:

QByteArray

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

字段编号

来源

1

数据1

2

数据2

3

数据3

4

data4[0] .. data4[1]

5

data4[2] .. data4[7]

toRfc4122()
Return type:

QByteArray

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

顺序如下:

字段编号

来源

1

数据1

2

数据2

3

data3

4

data4[0] .. data4[7]

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

另请参阅

toBytes()

toString([mode=QUuid.StringFormat.WithBraces])
Parameters:

modeStringFormat

Return type:

字符串

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

字段编号

来源

1

数据1

2

数据2

3

数据3

4

data4[0] .. data4[1]

5

data4[2] .. data4[7]

variant()
Return type:

Variant

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

另请参阅

version()

version()
Return type:

版本

返回UUID的version field,如果UUID的variant fieldDCE。否则返回VerUnknown

另请参阅

variant()