- class QUuid#
QUuid
类存储通用唯一标识符(UUID)。更多信息...继承自:
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上创建工单让我们知道。
详细描述#
使用通用唯一标识符(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的工具,例如
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
所使用的值。变体字段中的值决定了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之前的版本中,此构造函数是一个由
QString
、QByteArray
和const 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
在除Windows之外的所有平台上,该函数返回一个具有变体
DCE
和版本随机
的新UUID。在Windows上,使用Windows API生成GUID,其类型由API决定。- static createUuidV3(ns, baseData)<#>
- 参数::
ns –
QUuid
baseData –
QByteArray
- 返回类型:object
此函数返回一个新的UUID,其变体为
DCE
,版本为Md5
。`ns` 是命名空间,而 `baseData` 是按照RFC 4122描述的基本数据。此函数返回一个新的UUID,其变体为
DCE
,版本为Md5
。`ns` 是命名空间,而 `baseData` 是按照RFC 4122描述的基本数据。- static createUuidV5(ns, baseData)<#>
- 参数::
ns –
QUuid
baseData –
QByteArray
- 返回类型:object
此函数返回一个新的UUID,其变体为
DCE
,版本为Sha1
。`ns` 是命名空间,而 `baseData` 是按照RFC 4122描述的基本数据。此函数返回一个新的UUID,其变体为
DCE
,版本为Sha1
。`ns` 是命名空间,而 `baseData` 是按照RFC 4122描述的基本数据。- static fromBytes(bytes[, order=QSysInfo.BigEndian])<#>
使用字节顺序
order
从bytes
中读取 128 位(16 字节),并返回对应的QUuid
。此函数执行的操作与如果字节顺序order
是BigEndian
时的fromRfc4122()
相同。另请参阅
从符合 RFC 4122 第 4.1.2 节的 UUID 二进制表示中创建
QUuid
对象。有关对所需bytes
顺序的进一步解释,请参阅toRfc4122()
。接受的字节数组不是人可读格式。
如果转换失败,将创建一个空的 UUID。
从字符串
string
创建QUuid
对象,该字符串必须格式化为以“-”分隔的五个十六进制字段,例如,“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”,其中每个“x”都是十六进制数字。这里显示的花括号是可选的,但通常包括它们。如果转换失败,则返回空 UUID。关于五个十六进制字段如何映射到QUuid
中的公共数据成员,请参阅toString()
的解释。注意
在 Qt 6.3 之前的版本中,这个函数是一个由
QStringView
和QLatin1StringView
组成的重载集合,而不是一个接受QAnyStringView
的单一函数。另请参阅
toString()
QUuid()
- isNull()#
- 返回类型:object
布尔值
如果这是一个 null UUID {00000000-0000-0000-0000-000000000000},则返回
true
;否则返回false
。如果这个
QUuid
和另一个QUuid
不同,则返回true
;否则返回false
。如果这个
QUuid
与另一个QUuid
具有相同的变体字段,并且在字典序上 先于 另一个QUuid
,则返回true
。如果另一个QUuid
具有不同的变体字段,则根据比较两个variants
的结果确定返回值。另请参阅
返回
true
,如果lhs
与rhs
具有相同的variant field
,并且在字典序上不排在rhs
之后。如果rhs
有不同的变体字段,则返回值由比较这两个variants
来决定。另请参阅
如果这个
QUuid
和另一个QUuid
相同,则返回true
;否则返回false
。如果这个
QUuid
与另一个QUuid
具有相同的variant field
,并且在字典序上排在另一个之后,则返回true
。如果另一个QUuid
有不同的变体字段,则返回值由比较这两个variants
来决定。另请参阅
返回
true
,如果lhs
与rhs
具有相同的variant field
,并且在字典序上不排在rhs
之前。如果rhs
有不同的变体字段,则返回值由比较这两个variants
来决定。另请参阅
- toByteArray([mode=QUuid.StringFormat.WithBraces])#
- 参数::
模式 –
StringFormat
- 返回类型:object
返回此
QUuid
的字符串表示形式,格式由mode
参数控制。从左到右,五个十六进制字段按以下方式从QUuid
的四个公共数据成员获取字段编号
来源
1
data1
2
data2
3
data3
4
data4[0] .. data4[1]
5
data4[2] .. data4[7]
- toRfc4122()#
- 返回类型:object
返回此
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]
返回UUID的
variant 字段
中的值。如果返回值是DCE
,则调用version()
以查看它使用哪种布局。空UUID被认为是一种未知变体。另请参阅
如果UUID的
variant 字段
是DCE
,则返回UUID的version 字段
。否则返回VerUnknown
。另请参阅