このページでは

QUuid Class

QUuid クラスは、一意の識別子(UUID)を格納します。詳細...

ヘッダー: #include <QUuid>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
継承元:

QBluetoothUuid

注:このクラスのすべての関数は再入可能である。

QUuid の比較

カテゴリ比較可能な型説明
strongQUuid
strongGUID。

注: GUID との比較は Windows でのみ可能です。

パブリック型

(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 }

パブリック関数

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)

静的パブリックメンバー

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)

詳細な説明

UUID(Universally Unique IDentifiers)の使用は、分散コンピューティング環境においてエンティティを一意に識別するための標準的な方法です。 UUIDとは、あるアルゴリズムによって生成される16バイト(128ビット)の数値であり、それが使用される分散コンピューティング環境において一意であることを保証することを目的としています。代わりに「GUID」(Globally Unique IDentifiers)という略語がよく使用されますが、これは同じものを指します。

実際には、GUIDはUUIDの一つのバリエーションにすぎません。現在、複数のバリエーションが使用されています。各UUIDには、それがどのタイプ(バリエーション)のUUIDであるかを指定するビットフィールドが含まれています。 QUuidのインスタンスがどのタイプのUUIDを含んでいるかを確認するには、variant()を呼び出します。これにより、16バイトのうち8バイト目の最上位3ビットが抽出されます。 QUuid では、バイト 8 は `QUuid::data4[0]` です。すべての数値をパラメータとして受け取るコンストラクタを使用して QUuid のインスタンスを作成する場合、以下の表を参照して、パラメータ `b1` の最上位 3 ビットを設定してください。これにより、`QUuid::data4[0] ` となり、その最上位 3 ビットにバリアントフィールドが含まれます。表中の「x」は「任意」を意味します。

msb0msb1msb2バリアント
0xxNCS (ネットワーク・コンピューティング・システム)
10xDCE(分散コンピューティング環境)
110Microsoft (GUID)
111将来の拡張用に予約済み

variant() がQUuid::DCE を返す場合、その UUID にはQUuid::data3 の最上位 4 ビットにバージョンフィールドも含まれており、version() を呼び出すことで、その QUuid がどのバージョンを含むかを確認できます。 すべての数値をパラメータとして受け取るコンストラクタを使用してQUuidのインスタンスを作成する場合は、次の表を参照して、パラメータw2 の最上位4ビットを設定してください。これにより、 はQUuid::data3 となり、その最上位4ビットにバージョンフィールドが含まれるようになります。

msb0msb1msb2msb3バージョン
0001時間
0010組み込みPOSIX
0011Md5(名前)
0100ランダム
0101Sha1

上記の表に記載されているDCEバージョンのフィールドレイアウトは、「ネットワークワーキンググループUUID仕様」で規定されています。

ほとんどのプラットフォームには、新しいUUIDを生成するためのツールが用意されています(例:uuidgen やguidgen など)。また、createUuid() を使用することもできます。createUuid() によって生成される UUID はランダム型です。そのQUuid::Version ビットはQUuid::Random に設定され、QUuid::Variant ビットはQUuid::DCE に設定されます。UUID の残りの部分は乱数で構成されています。理論的には、createUuid() によって生成された UUID が一意でない可能性がわずかにあります。しかし、その可能性は極めて低いものです。

UUIDは、数値や文字列から構築することも、静的関数createUuid()を使用して生成することもできます。また、toString()を使用して文字列に変換することも可能です。UUIDにはvariant()およびversion()が用意されており、nullのUUIDはisNull()からtrueを返します。

メンバ型のドキュメント

enum QUuid::StringFormat

この列挙型は、toString (StringFormat)によって、文字列表現の書式設定を制御するために使用されます。取り得る値は次のとおりです。

定数値説明
QUuid::WithBraces0デフォルト。toString() は、ダッシュで区切られ、中括弧で囲まれた 5 つの 16 進数フィールドを返します。例: {00000000-0000-0000-0000-000000000000}。
QUuid::WithoutBraces1中括弧を除き、ダッシュで区切られた5つのフィールドのみ。例:00000000-0000-0000-0000-000000000000。
QUuid::Id1283中括弧やダッシュを含まない、16進数の桁のみ。なお、QUuid はこの形式を入力として再解析することはできません。

enum QUuid::Variant

この列挙型は、UUIDのvariant field で使用される値を定義します。variantフィールドの値によって、128ビットの値のレイアウトが決まります。

定数値説明
QUuid::VarUnknown-1バリアントが不明
QUuid::NCS0NCS (Network Computing System) との下位互換性のために予約されている
QUuid::DCE2分散コンピューティング環境。以下で使用されるスキーム。QUuid
QUuid::Microsoft6Microsoft の下位互換性のために予約されている(GUID)
QUuid::Reserved7将来の定義のために予約済み

enum QUuid::Version

この列挙型は、UUIDのversion field で使用される値を定義します。versionフィールドは、variant field の値がQUuid::DCE である場合にのみ意味を持ちます。

定数値説明
QUuid::VerUnknown-1バージョン不明
QUuid::Time1タイムベース。ノードセクションには、タイムスタンプ、クロックシーケンス、および(利用可能な場合は)MAC ネットワークカードアドレスを使用します。
QUuid::EmbeddedPOSIX2DCE セキュリティバージョン(POSIX UUID が埋め込まれている)
QUuid::NameMd5名前ベース。すべてのセクションで、名前からの値を使用
QUuid::Md53名前のエイリアス
QUuid::Random4ランダムベース:すべてのセクションで乱数を使用する
QUuid::Sha15SHA-1 ハッシュを使用する名前ベースのバージョン
QUuid::UnixEpoch7[6.9 以降] UNIX エポックからの経過ミリ秒数を使用した時間ベースの UUID

メンバー関数のドキュメント

[constexpr noexcept] QUuid::QUuid()

null UUID を作成します。toString() は、null UUID を「{00000000-0000-0000-0000-000000000000}」として出力します。

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

文字列 `text` から QUuid オブジェクトを作成します。この文字列は、「-」で区切られた 5 つの 16 進数フィールドで構成されている必要があります。例えば、`"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"` のように、各「x」は 16 進数の数字を表します。 ここに示されている中括弧は省略可能ですが、通常は含めるのが一般的です。変換に失敗した場合、null UUID が作成されます。5 つの 16 進フィールドが QUuid のパブリックデータメンバーにどのように対応しているかについては、toString() を参照してください。

注: Qt 6.3 以前のバージョンでは 、このコンストラクタは、QAnyStringView を受け取る単一のコンストラクタではなく、QString 、QByteArray 、およびconst char* からなるオーバーロードセットでした。

toString() およびQUuid()も参照してください 。

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

Windowsのguid をQtのQUuidに変換します。

警告: この関数はWindowsプラットフォームでのみ 使用可能です。

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

整数型のid128 パラメータに基づいてQUuidを作成します。入力パラメータid128 のバイト順はorder とみなされます。

この関数は Qt 6.6 で導入されました。

fromBytes()、toBytes()、toRfc4122()、および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)

パラメータで指定された値(l 、w1 、w2 、b1 、b2 、b3 、b4 、b5 、b6 、b7 、b8 )を用いてUUIDを生成します。

例:

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

[static] QUuid QUuid::createUuid()

Windows 以外のプラットフォームでは、この関数はバリアントQUuid::DCE 、バージョンQUuid::Random の新しい UUID を返します。Windows では、Windows API を使用して GUID が生成され、その型は API が決定した型になります。

variant() およびversion()も参照してください 。

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

この関数は、バリアントQUuid::DCE 、バージョンQUuid::Md5 の新しい UUID を返します。ns は名前空間、baseData は RFC 4122 で規定されている基本データです。

注: Qt 6.8 以前のバージョンでは 、この関数はQByteArrayView ではなくQByteArray を受け取っていました。

関連項目: variant()、version()、createUuidV5()、およびcreateUuidV7()。

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

この関数は、バリアントがQUuid::DCE 、バージョンがQUuid::Md5 の新しいUUIDを返します。ns は名前空間であり、baseData はRFC 4122で規定されている基本データです。

variant()、version()、createUuidV5()、およびcreateUuidV7()も参照してください 。

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

この関数は、バリアントがQUuid::DCE 、バージョンがQUuid::Sha1 である新しいUUIDを返します。ns は名前空間、baseData はRFC 4122で規定されている基本データです。

注: Qt 6.8 以前のバージョンでは 、この関数はQByteArrayView ではなくQByteArray を受け取っていました。

variant()、version()、およびcreateUuidV3()も参照してください 。

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

この関数は、バリアントQUuid::DCE およびバージョンQUuid::Sha1 を持つ新しい UUID を返します。ns は名前空間であり、baseData は RFC 4122 で規定されている基本データです。

variant()、version()、およびcreateUuidV3()も参照してください 。

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

この関数は、バリアントQUuid::DCE 、バージョンQUuid::UnixEpoch を持つ新しいUUIDを返します。

この関数は、RFC9562で規定されているように、UNIXエポックからの経過ミリ秒数から導出された、時間順の値フィールドを使用します。

この関数は Qt 6.9 で導入されました。

variant()、version()、createUuidV3()、およびcreateUuidV5()も参照してください 。

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

bytes から、バイト順order を使用して128ビット(16バイト)を読み取り、それらのバイトに対応するQUuid を返します。バイト順order がQSysInfo::BigEndian の場合、この関数はfromRfc4122()と同じ動作をします。

この関数は Qt 6.6 で導入されました。

fromRfc4122()も参照してください 。

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

uuid のCFUUIDのコピーを含む、新しいQUuid を生成します。

注:この関数は 、Appleプラットフォームでのみ利用可能です。

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

uuid のNSUUIDのコピーを含む、新しいQUuid を生成します。

注:この関数は 、Appleプラットフォームでのみ利用可能です。

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

RFC 4122のセクション4.1.2で規定されているように、UUIDのバイナリ表現からQUuid オブジェクトを作成します。必要なbytes の順序に関する詳細については、toRfc4122()を参照してください。

受け付けるバイト配列は、人間が読み取れる形式ではありません。

変換に失敗した場合、null UUID が作成されます。

注: Qt 6.3 以前のバージョンでは 、この関数はQByteArrayView ではなく、QByteArray を受け取っていました。

toRfc4122()、QUuid()、およびfromBytes()も参照してください 。

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

文字列 `string` から `QUuid ` オブジェクトを作成します。この文字列は、「-」で区切られた 5 つの 16 進数フィールドで構成されている必要があります。例:`"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"`。各「x」は 16 進数の桁を表します。 ここに示されている中括弧は省略可能ですが、通常は含めるのが一般的です。変換に失敗した場合は、nullのUUIDが返されます。5つの16進数フィールドが、QUuid のパブリックデータメンバーにどのように対応しているかについては、toString()を参照してください。

注: Qt 6.3 以前のバージョンでは 、この関数はQAnyStringView を受け取る単一の関数ではなく、QStringView およびQLatin1StringView からなるオーバーロードセットでした。

toString() およびQUuid()も参照してください 。

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

整数型パラメータ `uuid ` に基づいて、QUuid を作成します。入力パラメータ `uuid ` のバイト順は `order` とみなされます。

注:この関数は 、128ビット整数型を提供するプラットフォームでのみ利用可能です。

この関数は Qt 6.6 で導入されました。

関連項目: toUInt128()、fromBytes()、toBytes()、およびtoRfc4122()。

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

これがヌルUUID {00000000-0000-0000-0000-000000000000} である場合は `true ` を返し、それ以外の場合は `false` を返します。

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

このQUuid の文字列表現を返します。書式はmode パラメータによって制御されます。左から右へと、5つの16進数フィールドは、QUuid 内の4つのパブリックデータメンバーから次のように取得されます:

フィールド番号ソース
1data1
2data2
3データ3
4data4[0] .. data4[1]
5data4[2] .. data4[7]

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

order で指定されたバイト順で、このQUuid から作成された 128 ビットの ID を返します。順序がQSysInfo::BigEndian の場合、この関数のバイナリ内容はtoRfc4122() と同じになります。詳細については、その関数を参照してください。

この関数は Qt 6.6 で導入されました。

toRfc4122()、fromBytes()、およびQUuid()も参照してください 。

CFUUIDRef QUuid::toCFUUID() const

QUuid から CFUUID を作成します。

呼び出し元は CFUUID を所有し、その解放の責任を負います。

注:この関数は 、Appleプラットフォームでのみ利用可能です。

NSUUID *QUuid::toNSUUID() const

QUuid からNSUUIDを作成します。

NSUUIDは自動解放されます。

注:この関数は 、Appleプラットフォームでのみ利用可能です。

QByteArray QUuid::toRfc4122() const

このQUuid のバイナリ表現を返します。バイト配列はビッグエンディアン形式であり、RFC 4122のセクション4.1.2「レイアウトとバイト順」に従ってフォーマットされています。

順序は以下の通りです:

フィールド番号ソース
1data1
2data2
3データ3
4data4[0] .. data4[7]

この関数が返すバイト配列に含まれるバイトは、toBytes() と同じバイナリデータを格納しています。

toBytes()も参照してください 。

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

このQUuid の文字列表現を返します。書式はmode パラメータによって制御されます。左から右へと、5つの16進数フィールドは、QUuid 内の4つのパブリックデータメンバーから次のように取得されます:

フィールド番号ソース
1data1
2data2
3データ3
4data4[0] .. data4[1]
5data4[2] .. data4[7]

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

order で指定されたバイト順に基づき、このQUuid から作成された128ビット整数を返します。バイト順がQSysInfo::BigEndian の場合、この関数のバイナリ内容はtoRfc4122()と同じになります。詳細については、当該関数を参照してください。

注:この関数は 、128ビット整数型が利用可能なプラットフォームでのみ利用可能です。

この関数は Qt 6.6 で導入されました。

関連項目: toRfc4122()、fromUInt128()、toBytes()、fromBytes()、およびQUuid()。

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

UUIDのvariant field に格納されている値を返します。戻り値がQUuid::DCE の場合、version()を呼び出して、どのレイアウトが使用されているかを確認してください。nullのUUIDは、不明なバリアントであるとみなされます。

version()も参照してください 。

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

UUIDのvariant field がQUuid::DCE である場合、そのUUIDのversion field を返します。それ以外の場合は、QUuid::VerUnknown を返します。

variant()も参照してください 。

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

QUuid からWindows GUIDを返します。

警告: この関数は Windows プラットフォームでのみ使用可能です。

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

Windowsのguid をQt XMLのQUuid に割り当てます。

警告:この関数は Windows プラットフォームでのみ使用可能です。

関連する非メンバー変数

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

`key` のハッシュ値を、seed を計算のシードとして使用して返します。

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

lhs のUUIDがWindowsのGUIDrhs と一致しない場合は、true を返します。一致する場合は、false を返します。

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

lhs QUuid とrhs QUuid が異なる場合、true を返します。それ以外の場合は、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)

lhs とrhs を比較し、lhs とrhs の相対的なソート順が当該操作に対して正しい場合はtrue を返し、そうでない場合はfalse を返します。なお、この関数によって行われるソート順は、toString() によって生成される文字列のソート順、toId128() によって生成される整数のソート順、あるいはtoBytes() およびtoRfc4122() によって返されるバイト配列のソート順とは一致しない場合があることに注意してください。

variant()も参照してください 。

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

UUID「id 」をデータストリーム「s 」に書き込みます。

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

デバッグ情報dbg として、UUIDid を出力ストリームに書き込みます。

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

lhs のUUIDがWindowsのGUIDrhs と等しい場合はtrue を返し、そうでない場合はfalse を返します。

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

lhs QUuid とrhs QUuid が同一である場合、true を返します。それ以外の場合は、false を返します。

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

ストリーム `s ` から UUID を読み取り、`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.