Sur cette page

QUuid Class

La classe QUuid stocke un identifiant universel unique (UUID). Plus d'informations...

En-tête : #include <QUuid>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Inherited By :

QBluetoothUuid

Cette classe est fortement comparable.

Cette classe est fortement comparable à GUID.

Note : La comparaison avec GUID est réservée à Windows.

Remarque : Toutes les fonctions de cette classe sont réentrantes.

Types publics

(since 6.6) union Id128Bytes
enum StringFormat { WithBraces, WithoutBraces, Id128 }
enum Variant { VarUnknown, NCS, DCE, Microsoft, Reserved }
enum Version { VerUnknown, Time, EmbeddedPOSIX, Name, Md5, …, UnixEpoch }

Fonctions publiques

QUuid()
QUuid(QAnyStringView text)
QUuid(const GUID &guid)
(since 6.6) QUuid(QUuid::Id128Bytes id128, QSysInfo::Endian order = QSysInfo::BigEndian)
QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)
bool isNull() const
QByteArray toByteArray(QUuid::StringFormat mode = WithBraces) const
(since 6.6) QUuid::Id128Bytes toBytes(QSysInfo::Endian order = QSysInfo::BigEndian) const
CFUUIDRef toCFUUID() const
NSUUID *toNSUUID() const
QByteArray toRfc4122() const
QString toString(QUuid::StringFormat mode = WithBraces) const
(since 6.6) quint128 toUInt128(QSysInfo::Endian order = QSysInfo::BigEndian) const
QUuid::Variant variant() const
QUuid::Version version() const
operator GUID() const
QUuid &operator=(const GUID &guid)

Membres publics statiques

QUuid createUuid()
QUuid createUuidV3(QUuid ns, QByteArrayView baseData)
QUuid createUuidV3(const QUuid &ns, const QString &baseData)
QUuid createUuidV5(QUuid ns, QByteArrayView baseData)
QUuid createUuidV5(const QUuid &ns, const QString &baseData)
(since 6.9) QUuid createUuidV7()
(since 6.6) QUuid fromBytes(const void *bytes, QSysInfo::Endian order = QSysInfo::BigEndian)
QUuid fromCFUUID(CFUUIDRef uuid)
QUuid fromNSUUID(const NSUUID *uuid)
QUuid fromRfc4122(QByteArrayView bytes)
QUuid fromString(QAnyStringView string)
(since 6.6) QUuid fromUInt128(quint128 uuid, QSysInfo::Endian order = QSysInfo::BigEndian)
size_t qHash(const QUuid &key, size_t seed = 0)
bool operator!=(const QUuid &lhs, const GUID &rhs)
bool operator!=(const QUuid &lhs, const QUuid &rhs)
bool operator<(const QUuid &lhs, const QUuid &rhs)
QDataStream &operator<<(QDataStream &s, const QUuid &id)
QDebug operator<<(QDebug dbg, const QUuid &id)
bool operator<=(const QUuid &lhs, const QUuid &rhs)
bool operator==(const QUuid &lhs, const GUID &rhs)
bool operator==(const QUuid &lhs, const QUuid &rhs)
bool operator>(const QUuid &lhs, const QUuid &rhs)
bool operator>=(const QUuid &lhs, const QUuid &rhs)
QDataStream &operator>>(QDataStream &s, QUuid &id)

Description détaillée

L'utilisation d'identifiants universels uniques(UUID) est un moyen standard d'identifier de manière unique des entités dans un environnement informatique distribué. Un UUID est un numéro de 16 octets (128 bits) généré par un algorithme censé garantir que l'UUID sera unique dans l'environnement informatique distribué où il est utilisé. L'acronyme GUID ( Globally Unique IDentifiers) est souvent utilisé à la place, mais il fait référence à la même chose.

En fait, le GUID est une variante de l'UUID. Plusieurs variantes sont utilisées. Chaque UUID contient un champ de bits qui spécifie de quel type (variante) d'UUID il s'agit. Appelez variant() pour découvrir le type d'UUID que contient une instance de QUuid. Il extrait les trois bits les plus significatifs de l'octet 8 des 16 octets. Dans le QUuid, l'octet 8 est QUuid::data4[0]. Si vous créez des instances de QUuid en utilisant le constructeur qui accepte toutes les valeurs numériques comme paramètres, utilisez le tableau suivant pour définir les trois bits les plus significatifs du paramètre b1, qui devient QUuid::data4[0] et contient le champ variante dans ses trois bits les plus significatifs. Dans le tableau, 'x' signifie 'don't care'.

msb0msb1msb2Variante
0xxNCS (Network Computing System)
10xDCE (environnement de calcul distribué)
110Microsoft (GUID)
111Réservé pour une expansion future

Si variant() renvoie QUuid::DCE, l'UUID contient également un champ de version dans les quatre bits les plus significatifs de QUuid::data3, et vous pouvez appeler version() pour découvrir la version de votre QUuid. Si vous créez des instances de QUuid en utilisant le constructeur qui accepte toutes les valeurs numériques comme paramètres, utilisez le tableau suivant pour définir les quatre bits les plus significatifs du paramètre w2, qui devient QUuid::data3 et contient le champ de version dans ses quatre bits les plus significatifs.

msb0msb1msb2msb3Version
0001Temps
0010POSIX intégré
0011Md5(Nom)
0100Aléatoire
0101Sha1

La disposition des champs pour les versions DCE énumérées dans le tableau ci-dessus est précisée dans la spécification UUID du groupe de travail sur les réseaux.

La plupart des plateformes fournissent un outil permettant de générer de nouveaux UUID, par exemple uuidgen et guidgen. Vous pouvez également utiliser createUuid(). Les UUID générés par createUuid() sont de type aléatoire. Leurs bits QUuid::Version sont mis à QUuid::Random et leurs bits QUuid::Variant sont mis à QUuid::DCE. Le reste de l'UUID est composé de nombres aléatoires. Théoriquement, cela signifie qu'il y a une faible probabilité qu'un UUID généré par createUuid() ne soit pas unique. Mais ce risque est très faible.

Les UUID peuvent être construits à partir de valeurs numériques ou de chaînes de caractères, ou en utilisant la fonction statique createUuid(). Ils peuvent être convertis en chaîne de caractères à l'aide de la fonction toString(). Les UUID ont une fonction variant() et une fonction version(), et les UUID nuls renvoient la valeur true de la fonction isNull().

Documentation sur les types de membres

enum QUuid::StringFormat

Cette énumération est utilisée par toString(StringFormat) pour contrôler le formatage de la représentation de la chaîne. Les valeurs possibles sont les suivantes :

ConstanteValeurDescription
QUuid::WithBraces0Par défaut, toString() renvoie cinq champs hexadécimaux, séparés par des tirets et entourés d'accolades. Exemple : {-0000-0000-0000-} : {00000000-0000-0000-0000-000000000000}.
QUuid::WithoutBraces1Uniquement les cinq champs séparés par des tirets, sans les accolades. Example: 00000000-0000-0000-0000-000000000000.
QUuid::Id1283Uniquement les chiffres hexadécimaux, sans accolades ni tirets. Notez que QUuid ne peut pas analyser ces données en entrée.

enum QUuid::Variant

Cette énumération définit les valeurs utilisées dans le site variant field de l'UUID. La valeur du champ variante détermine la disposition de la valeur de 128 bits.

ConstanteValeurDescription de la valeur
QUuid::VarUnknown-1Variante inconnue
QUuid::NCS0Réservé pour la compatibilité ascendante NCS (Network Computing System)
QUuid::DCE2Environnement informatique distribué, le système utilisé par Microsoft. QUuid
QUuid::Microsoft6Réservé pour la rétrocompatibilité Microsoft (GUID)
QUuid::Reserved7Réservé pour une définition future

enum QUuid::Version

Cette énumération définit les valeurs utilisées dans version field de l'UUID. Le champ version n'est significatif que si la valeur de variant field est QUuid::DCE.

ConstanteValeurDescription de l'UUID
QUuid::VerUnknown-1La version est inconnue
QUuid::Time1Basée sur le temps, en utilisant l'horodatage, la séquence d'horloge et l'adresse de la carte réseau MAC (si elle est disponible) pour les sections du nœud.
QUuid::EmbeddedPOSIX2Version de sécurité DCE, avec UUID POSIX intégrés
QUuid::NameMd5Basée sur le nom, en utilisant les valeurs d'un nom pour toutes les sections
QUuid::Md53Alias pour le nom
QUuid::Random4basé sur des nombres aléatoires, en utilisant des nombres aléatoires pour toutes les sections
QUuid::Sha15Version basée sur le nom qui utilise le hachage SHA-1
QUuid::UnixEpoch7[depuis la version 6.9] UUID basé sur le temps, utilisant le nombre de millisecondes depuis l'époque UNIX

Documentation des fonctions membres

[constexpr noexcept] QUuid::QUuid()

Crée l'UUID nul. toString() affichera l'UUID nul sous la forme "{00000000-0000-0000-0000-000000000000}".

[explicit noexcept] QUuid::QUuid(QAnyStringView text)

Crée un objet QUuid à partir de la chaîne text, qui doit être formatée en cinq champs hexagonaux séparés par des '-', par exemple, "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" où chaque 'x' est un chiffre hexagonal. Les accolades indiquées ici sont facultatives, mais il est normal de les inclure. Si la conversion échoue, un UUID nul est créé. Voir toString() pour une explication de la correspondance entre les cinq champs hexadécimaux et les membres de données publiques de QUuid.

Note : Dans les versions de Qt XML antérieures à la 6.3, ce constructeur était un ensemble de surcharges composé de QString, QByteArray et const char* au lieu d'un seul constructeur prenant QAnyStringView.

Voir aussi toString() et QUuid().

[constexpr noexcept] QUuid::QUuid(const GUID &guid)

Transforme un Windows guid en un Qt QUuid.

Attention : Cette fonction n'est disponible que pour les plates-formes Windows.

[explicit noexcept, since 6.6] QUuid::QUuid(QUuid::Id128Bytes id128, QSysInfo::Endian order = QSysInfo::BigEndian)

Crée un QUuid basé sur le paramètre intégral id128. Le paramètre d'entrée id128 est considéré comme ayant l'ordre des octets order.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi fromBytes(), toBytes(), toRfc4122(), et toUInt128().

[constexpr noexcept] QUuid::QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)

Crée un UUID avec la valeur spécifiée par les paramètres l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8.

Exemple :

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

[static] QUuid QUuid::createUuid()

Sur toute plate-forme autre que Windows, cette fonction renvoie un nouvel UUID avec la variante QUuid::DCE et la version QUuid::Random. Sous Windows, un GUID est généré à l'aide de l'API Windows et sera du type que l'API décide de créer.

Voir également variant() et version().

[static noexcept] QUuid QUuid::createUuidV3(QUuid ns, QByteArrayView baseData)

Cette fonction renvoie un nouvel UUID avec la variante QUuid::DCE et la version QUuid::Md5. ns est l'espace de noms et baseData est la donnée de base telle que décrite par la RFC 4122.

Note : Dans les versions de Qt antérieures à 6.8, cette fonction prenait QByteArray, et non QByteArrayView.

Voir aussi variant(), version(), createUuidV5() et createUuidV7().

[static] QUuid QUuid::createUuidV3(const QUuid &ns, const QString &baseData)

Cette fonction renvoie un nouvel UUID avec la variante QUuid::DCE et la version QUuid::Md5. ns est l'espace de noms et baseData est la donnée de base telle que décrite par la RFC 4122.

Voir aussi variant(), version(), createUuidV5() et createUuidV7().

[static noexcept] QUuid QUuid::createUuidV5(QUuid ns, QByteArrayView baseData)

Cette fonction renvoie un nouvel UUID avec la variante QUuid::DCE et la version QUuid::Sha1. ns est l'espace de noms et baseData est la donnée de base telle que décrite par la RFC 4122.

Note : Dans les versions de Qt antérieures à 6.8, cette fonction prenait QByteArray, et non QByteArrayView.

Voir aussi variant(), version() et createUuidV3().

[static] QUuid QUuid::createUuidV5(const QUuid &ns, const QString &baseData)

Cette fonction renvoie un nouvel UUID avec la variante QUuid::DCE et la version QUuid::Sha1. ns est l'espace de noms et baseData est la donnée de base telle que décrite par la RFC 4122.

Voir aussi variant(), version() et createUuidV3().

[static, since 6.9] QUuid QUuid::createUuidV7()

Cette fonction renvoie un nouvel UUID avec la variante QUuid::DCE et la version QUuid::UnixEpoch.

Elle utilise un champ de valeurs ordonné dans le temps, dérivé du nombre de millisecondes écoulées depuis l'époque UNIX, tel que décrit par la RFC9562.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi variant(), version(), createUuidV3(), et createUuidV5().

[static, since 6.6] QUuid QUuid::fromBytes(const void *bytes, QSysInfo::Endian order = QSysInfo::BigEndian)

Lit 128 bits (16 octets) dans bytes en utilisant l'ordre des octets order et renvoie le QUuid correspondant à ces octets. Cette fonction fait la même chose que fromRfc4122() si l'ordre des octets order est QSysInfo::BigEndian.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi fromRfc4122().

[static] QUuid QUuid::fromCFUUID(CFUUIDRef uuid)

Construit un nouveau QUuid contenant une copie du CFUUID uuid.

Remarque : cette fonction n'est disponible que sur les plates-formes Apple.

[static] QUuid QUuid::fromNSUUID(const NSUUID *uuid)

Construit un nouveau QUuid contenant une copie du NSUUID uuid.

Remarque : cette fonction n'est disponible que sur les plates-formes Apple.

[static noexcept] QUuid QUuid::fromRfc4122(QByteArrayView bytes)

Crée un objet QUuid à partir de la représentation binaire de l'UUID, comme spécifié dans la RFC 4122 section 4.1.2. Voir toRfc4122() pour une explication plus détaillée de l'ordre de bytes requis.

Le tableau d'octets accepté n'est PAS un format lisible par l'homme.

Si la conversion échoue, un UUID nul est créé.

Remarque : Dans les versions de Qt antérieures à la version 6.3, cette fonction prenait QByteArray, et non QByteArrayView.

Voir aussi toRfc4122(), QUuid() et fromBytes().

[static noexcept] QUuid QUuid::fromString(QAnyStringView string)

Crée un objet QUuid à partir de la chaîne string, qui doit être formatée sous la forme de cinq champs hexagonaux séparés par des '-', par exemple, "{xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx}" où chaque 'x' est un chiffre hexagonal. Les accolades indiquées ici sont facultatives, mais il est normal de les inclure. Si la conversion échoue, un UUID nul est renvoyé. Voir toString() pour une explication de la correspondance entre les cinq champs hexadécimaux et les membres de données publiques dans QUuid.

Remarque : dans les versions de Qt XML antérieures à la version 6.3, cette fonction était un ensemble de surcharges composé de QStringView et QLatin1StringView au lieu d'une fonction prenant QAnyStringView.

Voir aussi toString() et QUuid().

[static constexpr noexcept, since 6.6] QUuid QUuid::fromUInt128(quint128 uuid, QSysInfo::Endian order = QSysInfo::BigEndian)

Crée un QUuid basé sur le paramètre intégral uuid. Le paramètre d'entrée uuid est considéré comme ayant l'ordre des octets order.

Remarque : cette fonction n'est présente que sur les plates-formes qui offrent un type d'entier de 128 bits.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi toUInt128(), fromBytes(), toBytes() et toRfc4122().

[constexpr noexcept] bool QUuid::isNull() const

Renvoie true s'il s'agit de l'UUID null {00000000-0000-0000-0000-000000000000} ; sinon, renvoie false.

QByteArray QUuid::toByteArray(QUuid::StringFormat mode = WithBraces) const

Renvoie la représentation sous forme de chaîne de caractères de cette adresse QUuid, dont le formatage est contrôlé par le paramètre mode. De gauche à droite, les cinq champs hexagonaux sont obtenus à partir des quatre membres de données publiques de QUuid comme suit :

Champ #Source
1données1
2données2
3données3
4data4[0] .. data4[1]
5data4[2] .. data4[7]

[noexcept, since 6.6] QUuid::Id128Bytes QUuid::toBytes(QSysInfo::Endian order = QSysInfo::BigEndian) const

Renvoie un identifiant de 128 bits créé à partir de QUuid dans l'ordre des octets spécifié par order. Le contenu binaire de cette fonction est le même que celui de toRfc4122() si l'ordre est QSysInfo::BigEndian. Voir cette fonction pour plus de détails.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi toRfc4122(), fromBytes(), et QUuid().

CFUUIDRef QUuid::toCFUUID() const

Crée un CFUUID à partir d'un QUuid.

L'appelant est propriétaire du CFUUID et est responsable de sa libération.

Remarque : cette fonction n'est disponible que sur les plates-formes Apple.

NSUUID *QUuid::toNSUUID() const

Crée une NSUUID à partir d'une QUuid.

La NSUUID est libérée automatiquement.

Remarque : cette fonction n'est disponible que sur les plates-formes Apple.

QByteArray QUuid::toRfc4122() const

Renvoie la représentation binaire de cette adresse QUuid. Le tableau d'octets est au format big endian et formaté conformément à la RFC 4122, section 4.1.2 - "Layout and byte order".

L'ordre est le suivant :

Champ #Source
1données1
2données2
3données3
4data4[0] .. data4[7]

Les octets du tableau d'octets renvoyé par cette fonction contiennent le même contenu binaire que toBytes().

Voir également toBytes().

QString QUuid::toString(QUuid::StringFormat mode = WithBraces) const

Renvoie la représentation sous forme de chaîne de caractères de cette adresse QUuid, dont le formatage est contrôlé par le paramètre mode. De gauche à droite, les cinq champs hexagonaux sont obtenus à partir des quatre membres de données publiques de QUuid comme suit :

Champ #Source
1données1
2données2
3données3
4data4[0] .. data4[1]
5data4[2] .. data4[7]

[constexpr noexcept, since 6.6] quint128 QUuid::toUInt128(QSysInfo::Endian order = QSysInfo::BigEndian) const

Renvoie un entier de 128 bits créé à partir de QUuid dans l'ordre des octets spécifié par order. Le contenu binaire de cette fonction est le même que celui de toRfc4122() si l'ordre est QSysInfo::BigEndian. Voir cette fonction pour plus de détails.

Remarque : cette fonction n'est présente que sur les plates-formes qui offrent un type d'entier de 128 bits.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi toRfc4122(), fromUInt128(), toBytes(), fromBytes() et QUuid().

[constexpr noexcept] QUuid::Variant QUuid::variant() const

Renvoie la valeur dans variant field de l'UUID. Si la valeur de retour est QUuid::DCE, appelez version() pour voir quelle mise en page est utilisée. L'UUID nul est considéré comme étant d'une variante inconnue.

Voir aussi version().

[constexpr noexcept] QUuid::Version QUuid::version() const

Renvoie l'adresse version field de l'UUID, si l'adresse variant field de l'UUID est QUuid::DCE. Sinon, il renvoie QUuid::VerUnknown.

Voir aussi variant().

[constexpr noexcept] QUuid::operator GUID() const

Renvoie un GUID Windows à partir d'un QUuid.

Attention : Cette fonction n'est disponible que pour les plates-formes Windows.

[constexpr noexcept] QUuid &QUuid::operator=(const GUID &guid)

Attribue un guid Windows à un QUuid Qt .

Attention : Cette fonction ne concerne que les plates-formes Windows.

Non-membres apparentés

[noexcept] size_t qHash(const QUuid &key, size_t seed = 0)

Renvoie la valeur de hachage pour key, en utilisant seed comme base de calcul.

[constexpr noexcept] bool operator!=(const QUuid &lhs, const GUID &rhs)

Renvoie true si lhs UUID n'est pas égal au GUID Windows rhs; sinon renvoie false.

[constexpr noexcept] bool operator!=(const QUuid &lhs, const QUuid &rhs)

Renvoie true si lhs QUuid et rhs QUuid sont différents ; sinon, renvoie false.

[constexpr noexcept] bool operator<(const QUuid &lhs, const QUuid &rhs)

[constexpr noexcept] bool operator>(const QUuid &lhs, const QUuid &rhs)

[constexpr noexcept] bool operator<=(const QUuid &lhs, const QUuid &rhs)

[constexpr noexcept] bool operator>=(const QUuid &lhs, const QUuid &rhs)

Effectue une comparaison de lhs avec rhs et renvoie true si le tri relatif de lhs et rhs est correct pour l'opération en question, false sinon. Notez que le tri effectué par cette fonction peut ne pas être égal au tri des chaînes créées par toString(), ni aux entiers toId128(), ou au tableau d'octets renvoyé par toBytes() et toRfc4122().

Voir aussi variant().

QDataStream &operator<<(QDataStream &s, const QUuid &id)

Écrit l'UUID id dans le flux de données s.

QDebug operator<<(QDebug dbg, const QUuid &id)

Écrit l'UUID id dans le flux de sortie pour des informations de débogage dbg.

[constexpr noexcept] bool operator==(const QUuid &lhs, const GUID &rhs)

Renvoie true si lhs UUID est égal au GUID Windows rhs; sinon renvoie false.

[constexpr noexcept] bool operator==(const QUuid &lhs, const QUuid &rhs)

Renvoie true si lhs QUuid et rhs QUuid sont identiques ; sinon, renvoie false.

QDataStream &operator>>(QDataStream &s, QUuid &id)

Lit un UUID à partir du flux s dans id.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.