QUuid Class

QUuidクラスはUniversally Unique Identifier (UUID)を格納します。詳細...

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

QBluetoothUuid

このクラスは強く比較可能である。

このクラスは GUID と強く比較可能です。

注意: 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, …, Sha1 }

パブリック関数

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)

静的パブリック・メンバ

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)

詳細説明

UUID(Universally Unique IDentifier)は、分散コンピューティング環境でエンティティを一意に識別するための標準的な方法である。UUIDは、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(分散コンピューティング環境)
110マイクロソフト (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バージョンのフィールドレイアウトは、Network Working Group UUID Specificationで規定されている。

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

UUIDは、数値や文字列から、あるいは静的なcreateUuid ()関数を使って構築することができる。また、toString() で文字列に変換することもできます。UUIDにはvariant ()とversion ()があり、NULL UUIDはisNull ()で真を返します。

メンバ型ドキュメント

enum QUuid::StringFormat

この列挙型は、toString(StringFormat)が文字列表現の書式を制御するために使用する。取り得る値は以下の通りです:

定数説明
QUuid::WithBraces0デフォルトのtoString() は、ダッシュで区切られ、中括弧で囲まれた5つの16進数フィールドを返す。例{00000000-0000-0000-0000-000000000000}.
QUuid::WithoutBraces1ダッシュで区切られた 5 つのフィールドのみを、中括弧なしで返します。Example: 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::Microsoft6マイクロソフトの下位互換性のために予約されている(GUID)
QUuid::Reserved7将来の定義のために予約

enum QUuid::Version

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

定数説明
QUuid::VerUnknown-1バージョンは不明
QUuid::Time1タイムスタンプ、クロックシーケンス、およびノードセクションの MAC ネットワークカードアドレス(利用可能な場合)を使用した、時間ベース。
QUuid::EmbeddedPOSIX2POSIXのUUIDを埋め込んだDCEセキュリティバージョン
QUuid::NameMd5名前ベース。すべてのセクションで名前の値を使用する。
QUuid::Md53名前のエイリアス
QUuid::Random4すべてのセクションに乱数を使用するランダムベース
QUuid::Sha15

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

[constexpr noexcept] QUuid::QUuid()

ヌルUUIDを作成します。toString() は null UUID を "{00000000-0000-0000-0000-0000000000}" として出力します。

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

textこの文字列は'-'で区切られた5つの16進数フィールドとしてフォーマットされなければならない。例えば、"{xxxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxx}"のように、それぞれの'x'は16進数である。ここに示した中括弧はオプションであるが、これを含めるのが普通である。変換に失敗した場合、NULL UUIDが作成される。5つの16進数フィールドがQUuidのパブリック・データ・メンバーにどのようにマッピングされるかについては、toString ()を参照してください。

注意: Qt 6.3より前のバージョンでは、このコンストラクタは、QAnyStringView を取る1つのコンストラクタではなく、QStringQByteArrayconst char* からなるオーバーロードセットでした。

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

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

Windowsguid を 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では、GUIDはWindows APIを使用して生成され、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()も参照してください

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

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

variant()、version()、createUuidV5()も参照のこと

[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.6] QUuid QUuid::fromBytes(const void *bytes, QSysInfo::Endian order = QSysInfo::BigEndian)

バイトオーダーorder を使用してbytes から 128 ビット(16 バイト)を読み取り、それらのバイトに対応するQUuid を返す。この関数は、バイトオーダーorderQSysInfo::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 を構築する。

注意: この関数はアップル社のプラットフォームでのみ利用可能です。

[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進数フィールドとしてフォーマットされなければならない。例えば、"{xxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxxx}" のように、各'x'は16進数である。ここに示した中括弧はオプションであるが、これを含めるのが普通である。変換に失敗した場合、NULL UUIDが返される。5つの16進数フィールドがQUuid のパブリック・データ・メンバにどのようにマッピングされるかについては、toString() を参照してください。

注意: Qt 6.3より前のバージョンでは、この関数はQAnyStringView を取る1つの関数ではなく、QStringViewQLatin1StringView からなるオーバーロードセットでした。

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()も参照してください

[noexcept] bool QUuid::isNull() const

これがヌル UUID {00000000-0000-0000-0000-0000000000} である場合はtrue を返し、そうでない場合はfalse を返す。

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

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

フィールド番号ソース
1data1
2データ2
3データ3
4データ4[0] ... データ4[1]
5データ4[2] ... データ4[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
2データ2
3データ3
4data4[0] ... data4[7].

この関数が返すバイト配列のバイトは、toBytes ()と同じバイナリ内容を含む。

toBytes()も参照

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

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

フィールド番号ソース
1data1
2データ2
3データ3
4データ4[0] ... データ4[1]
5データ4[2] ... データ4[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()も参照してください

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

UUIDのvariant field 。戻り値がQUuid::DCE の場合、version() をコールして、どのレイアウトを使用しているかを確認する。null の UUID は未知の variant であるとみなされます。

version()も参照

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

UUID のvariant fieldQUuid::DCE の場合、UUID のversion field を返す。そうでない場合はQUuid::VerUnknown を返します。

variant()も参照

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

QUuid から Windows GUID を返す。

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

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

Windowsguid を QtQUuid に割り当てます。

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

関連する非会員

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

lhsrhs の比較を行い、lhsrhs の相対ソートが当該操作に対して正しい場合はtrue を、そうでない場合はfalse を返す。この関数で行われるソートは、toString() で作成された文字列のソートや、整数 toId128() や、toBytes() やtoRfc4122() で返されたバイト配列のソートと等しくない可能性があることに注意。

variant()も参照

[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 QUuidrhs QUuid が異なる場合はtrue を返し、そうでない場合はfalse を返す。

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

UUIDid をデータストリームs に書き込む。

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

UUIDid をデバッグ情報用に出力ストリームに書き込むdbg

[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 QUuidrhs QUuid が同一であればtrue を返し、そうでなければfalse を返す。

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

ストリームs から UUID を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.