QUuid Class
QUuid クラスは、一意の識別子(UUID)を格納します。詳細...
| ヘッダー: | #include <QUuid> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 継承元: |
注:このクラスのすべての関数は再入可能である。
QUuid の比較
| カテゴリ | 比較可能な型 | 説明 |
|---|---|---|
| strong | QUuid | |
| strong | 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, …, 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」は「任意」を意味します。
| msb0 | msb1 | msb2 | バリアント |
|---|---|---|---|
| 0 | x | x | NCS (ネットワーク・コンピューティング・システム) |
| 1 | 0 | x | DCE(分散コンピューティング環境) |
| 1 | 1 | 0 | Microsoft (GUID) |
| 1 | 1 | 1 | 将来の拡張用に予約済み |
variant() がQUuid::DCE を返す場合、その UUID にはQUuid::data3 の最上位 4 ビットにバージョンフィールドも含まれており、version() を呼び出すことで、その QUuid がどのバージョンを含むかを確認できます。 すべての数値をパラメータとして受け取るコンストラクタを使用してQUuidのインスタンスを作成する場合は、次の表を参照して、パラメータw2 の最上位4ビットを設定してください。これにより、 はQUuid::data3 となり、その最上位4ビットにバージョンフィールドが含まれるようになります。
| msb0 | msb1 | msb2 | msb3 | バージョン |
|---|---|---|---|---|
| 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 はランダム型です。その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::WithBraces | 0 | デフォルト。toString() は、ダッシュで区切られ、中括弧で囲まれた 5 つの 16 進数フィールドを返します。例: {00000000-0000-0000-0000-000000000000}。 |
QUuid::WithoutBraces | 1 | 中括弧を除き、ダッシュで区切られた5つのフィールドのみ。例:00000000-0000-0000-0000-000000000000。 |
QUuid::Id128 | 3 | 中括弧やダッシュを含まない、16進数の桁のみ。なお、QUuid はこの形式を入力として再解析することはできません。 |
enum QUuid::Variant
この列挙型は、UUIDのvariant field で使用される値を定義します。variantフィールドの値によって、128ビットの値のレイアウトが決まります。
| 定数 | 値 | 説明 |
|---|---|---|
QUuid::VarUnknown | -1 | バリアントが不明 |
QUuid::NCS | 0 | NCS (Network Computing System) との下位互換性のために予約されている |
QUuid::DCE | 2 | 分散コンピューティング環境。以下で使用されるスキーム。QUuid |
QUuid::Microsoft | 6 | Microsoft の下位互換性のために予約されている(GUID) |
QUuid::Reserved | 7 | 将来の定義のために予約済み |
enum QUuid::Version
この列挙型は、UUIDのversion field で使用される値を定義します。versionフィールドは、variant field の値がQUuid::DCE である場合にのみ意味を持ちます。
| 定数 | 値 | 説明 |
|---|---|---|
QUuid::VerUnknown | -1 | バージョン不明 |
QUuid::Time | 1 | タイムベース。ノードセクションには、タイムスタンプ、クロックシーケンス、および(利用可能な場合は)MAC ネットワークカードアドレスを使用します。 |
QUuid::EmbeddedPOSIX | 2 | DCE セキュリティバージョン(POSIX UUID が埋め込まれている) |
QUuid::Name | Md5 | 名前ベース。すべてのセクションで、名前からの値を使用 |
QUuid::Md5 | 3 | 名前のエイリアス |
QUuid::Random | 4 | ランダムベース:すべてのセクションで乱数を使用する |
QUuid::Sha1 | 5 | SHA-1 ハッシュを使用する名前ベースのバージョン |
QUuid::UnixEpoch | 7 | [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つのパブリックデータメンバーから次のように取得されます:
| フィールド番号 | ソース |
|---|---|
| 1 | data1 |
| 2 | data2 |
| 3 | データ3 |
| 4 | data4[0] .. data4[1] |
| 5 | data4[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「レイアウトとバイト順」に従ってフォーマットされています。
順序は以下の通りです:
| フィールド番号 | ソース |
|---|---|
| 1 | data1 |
| 2 | data2 |
| 3 | データ3 |
| 4 | data4[0] .. data4[7] |
この関数が返すバイト配列に含まれるバイトは、toBytes() と同じバイナリデータを格納しています。
toBytes()も参照してください 。
QString QUuid::toString(QUuid::StringFormat mode = WithBraces) const
このQUuid の文字列表現を返します。書式はmode パラメータによって制御されます。左から右へと、5つの16進数フィールドは、QUuid 内の4つのパブリックデータメンバーから次のように取得されます:
| フィールド番号 | ソース |
|---|---|
| 1 | data1 |
| 2 | data2 |
| 3 | データ3 |
| 4 | data4[0] .. data4[1] |
| 5 | data4[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.