PySide6.QtCore.QUuid¶
- class QUuid¶
-
继承者:
QBluetoothUuid概要¶
方法¶
def
__init__()def
__reduce__()def
__repr__()def
isNull()def
__ne__()def
__lt__()def
__le__()def
__eq__()def
__gt__()def
__ge__()def
toByteArray()def
toRfc4122()def
toString()def
variant()def
version()
静态函数¶
def
createUuid()def
createUuidV3()def
createUuidV5()def
fromBytes()def
fromRfc4122()def
fromString()
注意
本文档可能包含从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的工具,例如
uuidgen和guidgen。你也可以使用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之前的版本中,这个构造函数是一个由
QString、QByteArray和const 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:
字符串
在除Windows以外的任何平台上,此函数返回一个具有
DCE变体和Random版本的新UUID。在Windows上,使用Windows API生成GUID,并且将是API决定创建的类型。- static createUuidV3(ns, baseData)¶
此函数返回一个新的UUID,其变体为
DCE,版本为Md5。ns是命名空间,baseData是RFC 4122中描述的基本数据。- static createUuidV5(ns, baseData)¶
此函数返回一个具有变体
DCE和版本Sha1的新UUID。ns是命名空间,baseData是RFC 4122中描述的基本数据。- static fromBytes(bytes[, order=QSysInfo.BigEndian])¶
从
bytes中读取128位(16字节)数据,使用字节顺序order,并返回与这些字节对应的QUuid。如果字节顺序order是BigEndian,此函数与fromRfc4122()的功能相同。另请参阅
从UUID的二进制表示创建一个
QUuid对象,如RFC 4122第4.1.2节所规定。有关所需bytes顺序的进一步解释,请参见toRfc4122()。接受的字节数组不是人类可读的格式。
如果转换失败,将创建一个空的UUID。
从字符串
string创建一个QUuid对象,该字符串必须格式化为由“-”分隔的五个十六进制字段,例如,“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”,其中每个“x”是一个十六进制数字。这里显示的大括号是可选的,但通常包含它们。如果转换失败,则返回一个空 UUID。有关五个十六进制字段如何映射到QUuid中的公共数据成员的说明,请参见toString()。注意
在Qt 6.3之前的版本中,此函数是一个由
QStringView和QLatin1StringView组成的重载集,而不是一个接受QAnyStringView的函数。另请参阅
toString()QUuid()- isNull()¶
- Return type:
布尔
如果这是空UUID {00000000-0000-0000-0000-000000000000},则返回
true;否则返回false。如果
lhsQUuid和rhsQUuid不同,则返回true;否则返回false。如果
lhsQUuid和rhsQUuid相同,则返回true;否则返回false。- toByteArray([mode=QUuid.StringFormat.WithBraces])¶
- Parameters:
mode –
StringFormat- Return type:
返回此
QUuid的字符串表示形式,格式由mode参数控制。从左到右,五个十六进制字段从QUuid中的四个公共数据成员中获取,如下所示:字段编号
来源
1
数据1
2
数据2
3
数据3
4
data4[0] .. data4[1]
5
data4[2] .. data4[7]
- toRfc4122()¶
- Return type:
返回此
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:
mode –
StringFormat- Return type:
字符串
返回此
QUuid的字符串表示形式,格式由mode参数控制。从左到右,五个十六进制字段从QUuid中的四个公共数据成员中获取,如下所示:字段编号
来源
1
数据1
2
数据2
3
数据3
4
data4[0] .. data4[1]
5
data4[2] .. data4[7]
返回UUID的
variant field中的值。如果返回值是DCE,调用version()查看它使用的布局。空UUID被认为是未知变体。另请参阅
返回UUID的
version field,如果UUID的variant field是DCE。否则返回VerUnknown。另请参阅