QUuid Class

Die Klasse QUuid speichert einen Universally Unique Identifier (UUID). Mehr...

Kopfzeile: #include <QUuid>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Vererbt von:

QBluetoothUuid

Diese Klasse ist stark vergleichbar.

Diese Klasse ist stark vergleichbar mit GUID.

Hinweis: Der Vergleich mit GUID ist nur für Windows möglich.

Hinweis: Alle Funktionen in dieser Klasse sind reentrant.

Öffentliche Typen

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

Öffentliche Funktionen

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
GUID operator GUID() const
QUuid &operator=(const GUID &guid)

Statische öffentliche Mitglieder

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.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)

Detaillierte Beschreibung

Die Verwendung von Universally Unique IDentifiers(UUID) ist ein Standardverfahren zur eindeutigen Identifizierung von Entitäten in einer verteilten Computerumgebung. Eine UUID ist eine 16-Byte-Nummer (128 Bit), die von einem Algorithmus generiert wird, der garantieren soll, dass die UUID in der verteilten Computerumgebung, in der sie verwendet wird, eindeutig ist. Häufig wird stattdessen das Akronym GUID ( Globally Unique IDentifiers) verwendet, das sich aber auf dasselbe bezieht.

Eigentlich ist die GUID nur eine Variante der UUID. Es sind mehrere Varianten in Gebrauch. Jede UUID enthält ein Bitfeld, das angibt, um welche Art (Variante) von UUID es sich handelt. Rufen Sie variant() auf, um herauszufinden, welchen Typ von UUID eine Instanz von QUuid enthält. Es werden die drei höchstwertigen Bits von Byte 8 der 16 Bytes extrahiert. In QUuid ist Byte 8 QUuid::data4[0]. Wenn Sie Instanzen von QUuid unter Verwendung des Konstruktors erstellen, der alle numerischen Werte als Parameter akzeptiert, verwenden Sie die folgende Tabelle, um die drei höchstwertigen Bits des Parameters b1 zu setzen, der zu QUuid::data4[0] wird und das Variantenfeld in seinen drei höchstwertigen Bits enthält. In der Tabelle steht 'x' für don't care.

msb0msb1msb2Variante
0xxNCS (Netzwerk-Computing-System)
10xDCE (Verteilte Datenverarbeitungsumgebung)
110Microsoft (GUID)
111Reserviert für zukünftige Erweiterungen

Wenn variant() QUuid::DCE zurückgibt, enthält die UUID auch ein Versionsfeld in den vier höchstwertigen Bits von QUuid::data3, und Sie können version() aufrufen, um herauszufinden, welche Version Ihre QUuid enthält. Wenn Sie Instanzen von QUuid unter Verwendung des Konstruktors erstellen, der alle numerischen Werte als Parameter akzeptiert, verwenden Sie die folgende Tabelle, um die vier höchstwertigen Bits des Parameters w2 zu setzen, der zu QUuid::data3 wird und das Versionsfeld in seinen vier höchstwertigen Bits enthält.

msb0msb1msb2msb3Version
0001Zeit
0010Eingebettetes POSIX
0011Md5(Name)
0100Zufällig
0101Sha1

Die Feldanordnungen für die in der obigen Tabelle aufgeführten DCE-Versionen sind in der UUID-Spezifikation der Network Working Group festgelegt.

Die meisten Plattformen bieten ein Werkzeug zur Erzeugung neuer UUIDs, z. B. uuidgen und guidgen. Sie können auch createUuid() verwenden. UUIDs, die von createUuid() erzeugt werden, sind vom Zufallstyp. Ihre QUuid::Version Bits werden auf QUuid::Random gesetzt, und ihre QUuid::Variant Bits werden auf QUuid::DCE gesetzt. Der Rest der UUID besteht aus Zufallszahlen. Theoretisch bedeutet dies, dass es eine kleine Chance gibt, dass eine von createUuid() erzeugte UUID nicht eindeutig ist. Diese Chance ist jedoch sehr gering.

UUIDs können aus numerischen Werten oder aus Zeichenketten oder mit der statischen Funktion createUuid() erstellt werden. Sie können mit toString() in eine Zeichenkette umgewandelt werden. UUIDs haben eine variant() und eine version(), und null UUIDs geben true von isNull() zurück.

Dokumentation der Mitgliedstypen

enum QUuid::StringFormat

Dieses Enum wird von toString(StringFormat) verwendet, um die Formatierung der String-Darstellung zu steuern. Die möglichen Werte sind:

KonstanteWertBeschreibung
QUuid::WithBraces0Der Standardwert toString() gibt fünf Hex-Felder zurück, die durch Bindestriche getrennt und von geschweiften Klammern umgeben sind. Beispiel: {00000000-0000-0000-0000-000000000000}.
QUuid::WithoutBraces1Nur die fünf durch Bindestriche getrennten Felder, ohne die geschweiften Klammern. Example: 00000000-0000-0000-0000-000000000000.
QUuid::Id1283Nur die Hex-Ziffern, ohne geschweifte Klammern oder Bindestriche. Beachten Sie, dass QUuid dies nicht wieder als Eingabe parsen kann.

enum QUuid::Variant

Diese Aufzählung definiert die Werte, die in der variant field der UUID verwendet werden. Der Wert im Feld variant bestimmt das Layout des 128-Bit-Wertes.

KonstanteWertBeschreibung
QUuid::VarUnknown-1Variante ist unbekannt
QUuid::NCS0Reserviert für NCS (Network Computing System) Abwärtskompatibilität
QUuid::DCE2Distributed Computing Environment, das Schema, das von QUuid
QUuid::Microsoft6Reserviert für Microsoft-Abwärtskompatibilität (GUID)
QUuid::Reserved7Reserviert für zukünftige Definition

enum QUuid::Version

Diese Aufzählung definiert die Werte, die in der version field der UUID verwendet werden. Das Feld Version ist nur sinnvoll, wenn der Wert in variant field QUuid::DCE ist.

KonstanteWertBeschreibung
QUuid::VerUnknown-1Version ist unbekannt
QUuid::Time1Zeitbasiert, unter Verwendung von Zeitstempel, Taktfolge und MAC-Netzwerkkartenadresse (falls verfügbar) für die Knotenabschnitte
QUuid::EmbeddedPOSIX2DCE-Sicherheitsversion, mit eingebetteten POSIX UUIDs
QUuid::NameMd5Namensbasiert, durch Verwendung von Werten aus einem Namen für alle Abschnitte
QUuid::Md53Alias für Name
QUuid::Random4Zufallsbasiert, durch Verwendung von Zufallszahlen für alle Abschnitte
QUuid::Sha15

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept] QUuid::QUuid()

Erzeugt die Null-UUID. toString() gibt die Null-UUID als "{00000000-0000-0000-0000-000000000000}" aus.

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

Erzeugt ein QUuid-Objekt aus der Zeichenkette text, die als fünf durch '-' getrennte Hex-Felder formatiert sein muss, z. B. "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", wobei jedes 'x' eine Hex-Ziffer ist. Die hier gezeigten geschweiften Klammern sind optional, aber es ist normal, sie einzuschließen. Wenn die Konvertierung fehlschlägt, wird eine Null-UUID erstellt. Siehe toString() für eine Erklärung, wie die fünf Hex-Felder den öffentlichen Datenelementen in QUuid zugeordnet werden.

Hinweis: In Qt-Versionen vor 6.3 war dieser Konstruktor ein Überladungssatz, bestehend aus QString, QByteArray und const char* anstelle eines Konstruktors mit QAnyStringView.

Siehe auch toString() und QUuid().

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

Überführt eine Windows guid in eine Qt QUuid.

Warnung: Diese Funktion ist nur für Windows-Plattformen geeignet.

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

Erzeugt eine QUuid auf der Grundlage des integralen Parameters id128. Der Eingabeparameter id128 hat die Bytereihenfolge order.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch fromBytes(), toBytes(), toRfc4122(), und 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)

Erzeugt eine UUID mit dem durch die Parameter l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8 angegebenen Wert.

Beispiel:

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

[static] QUuid QUuid::createUuid()

Auf allen Plattformen außer Windows gibt diese Funktion eine neue UUID mit der Variante QUuid::DCE und der Version QUuid::Random zurück. Unter Windows wird eine GUID mit Hilfe der Windows-API erzeugt und hat den Typ, den die API zu erzeugen beschließt.

Siehe auch variant() und version().

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

Diese Funktion gibt eine neue UUID mit der Variante QUuid::DCE und der Version QUuid::Md5 zurück. ns ist der Namensraum und baseData sind die Basisdaten, wie in RFC 4122 beschrieben.

Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion QByteArray und nicht QByteArrayView.

Siehe auch variant(), version(), und createUuidV5().

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

Diese Funktion gibt eine neue UUID mit der Variante QUuid::DCE und der Version QUuid::Md5 zurück. ns ist der Namensraum und baseData sind die Basisdaten, wie in RFC 4122 beschrieben.

Siehe auch variant(), version(), und createUuidV5().

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

Diese Funktion gibt eine neue UUID mit der Variante QUuid::DCE und der Version QUuid::Sha1 zurück. ns ist der Namensraum und baseData sind die Basisdaten, wie in RFC 4122 beschrieben.

Hinweis: In Qt-Versionen vor 6.8 nahm diese Funktion QByteArray und nicht QByteArrayView.

Siehe auch variant(), version(), und createUuidV3().

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

Diese Funktion gibt eine neue UUID mit der Variante QUuid::DCE und der Version QUuid::Sha1 zurück. ns ist der Namensraum und baseData sind die Basisdaten, wie in RFC 4122 beschrieben.

Siehe auch variant(), version(), und createUuidV3().

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

Liest 128 Bits (16 Bytes) aus bytes in der Byte-Reihenfolge order und gibt die QUuid zurück, die diesen Bytes entspricht. Diese Funktion tut dasselbe wie fromRfc4122(), wenn die Byte-Reihenfolge order QSysInfo::BigEndian ist.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch fromRfc4122().

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

Konstruiert eine neue QUuid, die eine Kopie der uuid CFUUID enthält.

Hinweis: Diese Funktion ist nur auf Apple-Plattformen verfügbar.

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

Konstruiert eine neue QUuid, die eine Kopie der uuid NSUUID enthält.

Hinweis: Diese Funktion ist nur auf Apple-Plattformen verfügbar.

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

Erzeugt ein QUuid Objekt aus der binären Darstellung der UUID, wie in RFC 4122 Abschnitt 4.1.2 beschrieben. Siehe toRfc4122() für eine weitere Erläuterung der erforderlichen Reihenfolge von bytes.

Das akzeptierte Byte-Array ist KEIN für Menschen lesbares Format.

Wenn die Konvertierung fehlschlägt, wird eine Null-UUID erzeugt.

Hinweis: In Qt-Versionen vor 6.3 nahm diese Funktion QByteArray, nicht QByteArrayView.

Siehe auch toRfc4122(), QUuid(), und fromBytes().

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

Erzeugt ein QUuid Objekt aus der Zeichenkette string, die als fünf durch '-' getrennte Hex-Felder formatiert sein muss, z.B. "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", wobei jedes 'x' eine Hex-Ziffer ist. Die hier gezeigten geschweiften Klammern sind optional, aber es ist normal, sie einzuschließen. Wenn die Konvertierung fehlschlägt, wird eine Null-UUID zurückgegeben. Siehe toString() für eine Erklärung, wie die fünf Hex-Felder den öffentlichen Datenelementen in QUuid zugeordnet werden.

Hinweis: In Qt-Versionen vor 6.3 war diese Funktion ein Überladungssatz, bestehend aus QStringView und QLatin1StringView anstelle einer Funktion, die QAnyStringView aufnimmt.

Siehe auch toString() und QUuid().

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

Erzeugt eine QUuid auf der Grundlage des integralen uuid Parameters. Der Eingabeparameter uuid hat die Bytereihenfolge order.

Hinweis: Diese Funktion ist nur auf Plattformen verfügbar, die einen 128-Bit-Integer-Typ anbieten.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch toUInt128(), fromBytes(), toBytes(), und toRfc4122().

[noexcept] bool QUuid::isNull() const

Gibt true zurück, wenn dies die Null-UUID {00000000-0000-0000-0000-000000000000} ist; andernfalls wird false zurückgegeben.

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

Gibt die String-Darstellung dieses QUuid zurück, wobei die Formatierung durch den Parameter mode gesteuert wird. Von links nach rechts werden die fünf Hex-Felder wie folgt aus den vier öffentlichen Datenelementen in QUuid bezogen:

Feld #Quelle
1Daten1
2Daten2
3Daten3
4data4[0] .. data4[1]
5data4[2] .. data4[7]

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

Gibt eine 128-Bit-ID zurück, die aus dieser QUuid in der durch order angegebenen Byte-Reihenfolge erstellt wurde. Der binäre Inhalt dieser Funktion ist derselbe wie toRfc4122(), wenn die Reihenfolge QSysInfo::BigEndian ist. Siehe diese Funktion für weitere Details.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch toRfc4122(), fromBytes(), und QUuid().

CFUUIDRef QUuid::toCFUUID() const

Erzeugt eine CFUUID aus einer QUuid.

Der Aufrufer besitzt die CFUUID und ist für die Freigabe verantwortlich.

Hinweis: Diese Funktion ist nur auf Apple-Plattformen verfügbar.

NSUUID *QUuid::toNSUUID() const

Erzeugt eine NSUUID aus einer QUuid.

Die NSUUID wird automatisch wieder freigegeben.

Hinweis: Diese Funktion ist nur auf Apple-Plattformen verfügbar.

QByteArray QUuid::toRfc4122() const

Gibt die binäre Darstellung dieser QUuid zurück. Das Byte-Array ist im Big-Endian-Format und gemäß RFC 4122, Abschnitt 4.1.2 - "Layout and byte order" formatiert.

Die Reihenfolge ist wie folgt:

Feld #Quelle
1Daten1
2Daten2
3Daten3
4data4[0] .. data4[7]

Die Bytes in dem von dieser Funktion zurückgegebenen Byte-Array enthalten denselben binären Inhalt wie toBytes().

Siehe auch toBytes().

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

Gibt die String-Darstellung dieses QUuid zurück, wobei die Formatierung durch den Parameter mode gesteuert wird. Von links nach rechts werden die fünf Hex-Felder wie folgt aus den vier öffentlichen Datenelementen in QUuid bezogen:

Feld #Quelle
1Daten1
2Daten2
3Daten3
4data4[0] .. data4[1]
5data4[2] .. data4[7]

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

Gibt eine 128-Bit-Ganzzahl zurück, die aus dieser QUuid in der durch order angegebenen Byte-Reihenfolge erstellt wurde. Der binäre Inhalt dieser Funktion ist derselbe wie toRfc4122(), wenn die Reihenfolge QSysInfo::BigEndian ist. Siehe diese Funktion für weitere Details.

Hinweis: Diese Funktion ist nur auf Plattformen vorhanden, die einen 128-Bit-Integer-Typ anbieten.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch toRfc4122(), fromUInt128(), toBytes(), fromBytes(), und QUuid().

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

Gibt den Wert in variant field der UUID zurück. Wenn der Rückgabewert QUuid::DCE ist, rufen Sie version() auf, um zu sehen, welches Layout es verwendet. Die Null-UUID wird als eine unbekannte Variante betrachtet.

Siehe auch version().

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

Gibt die version field der UUID zurück, wenn die variant field der UUID QUuid::DCE ist. Andernfalls wird QUuid::VerUnknown zurückgegeben.

Siehe auch variant().

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

Gibt eine Windows-GUID aus einer QUuid zurück.

Warnung: Diese Funktion ist nur für Windows-Plattformen geeignet.

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

Weist ein Windows guid einem Qt QUuid zu.

Achtung! Diese Funktion ist nur für Windows-Plattformen geeignet.

Verwandte Nicht-Mitglieder

[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)

Führt einen Vergleich von lhs mit rhs durch und gibt true zurück, wenn die relative Sortierung von lhs und rhs für die betreffende Operation korrekt ist, andernfalls false. Beachten Sie, dass die von dieser Funktion durchgeführte Sortierung nicht unbedingt mit der Sortierung der von toString() erzeugten Zeichenketten, der Ganzzahlen toId128() oder des von toBytes() und toRfc4122() zurückgegebenen Byte-Arrays übereinstimmt.

Siehe auch variant().

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

Gibt den Hash-Wert für key zurück, wobei seed als Startwert für die Berechnung verwendet wird.

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

Gibt true zurück, wenn lhs UUID nicht gleich der Windows GUID rhs ist; andernfalls wird false zurückgegeben.

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

Gibt true zurück, wenn lhs QUuid und rhs QUuid unterschiedlich sind; andernfalls wird false zurückgegeben.

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

Schreibt die UUID id in den Datenstrom s.

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

Schreibt die UUID id in den Ausgabestrom für Debugging-Informationen dbg.

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

Gibt true zurück, wenn lhs UUID gleich der Windows GUID rhs ist; andernfalls wird false zurückgegeben.

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

Gibt true zurück, wenn lhs QUuid und die rhs QUuid identisch sind; andernfalls wird false zurückgegeben.

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

Liest eine UUID aus dem Stream s in id.

© 2025 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.