QUuid Class

QUuid 클래스는 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( 범용 고유 식별자)는 분산 컴퓨팅 환경에서 엔티티를 고유하게 식별하는 표준 방법입니다. UUID는 특정 알고리즘에 의해 생성된 16바이트(128비트) 숫자로, UUID가 사용되는 분산 컴퓨팅 환경에서 고유하다는 것을 보장하기 위한 것입니다. GUID라는 약어 대신 글로벌 고유 식별자라는약어를 자주 사용하지만 같은 의미입니다.

사실 GUID는 UUID의 한 변형입니다. 여러 변형이 사용되고 있습니다. 각 UUID에는 어떤 유형(변형)의 UUID인지 지정하는 비트 필드가 포함되어 있습니다. variant ()를 호출하여 쿼드 인스턴스에 어떤 유형의 UUID가 포함되어 있는지 알아보세요. 이 함수는 16바이트 중 바이트 8의 가장 중요한 세 비트를 추출합니다. QUuid에서 바이트 8은 QUuid::data4[0] 입니다. 모든 숫자 값을 매개변수로 허용하는 생성자를 사용하여 QUuid의 인스턴스를 생성하는 경우 다음 표를 사용하여 매개변수 b1 의 가장 중요한 세 비트를 설정하면 QUuid::data4[0] 이 되고 가장 중요한 세 비트에 변형 필드가 포함됩니다. 표에서 'x'는 상관없음을 의미합니다.

msb0msb1msb2변형
0xxNCS(네트워크 컴퓨팅 시스템)
10xDCE(분산 컴퓨팅 환경)
110Microsoft(GUID)
111향후 확장을 위해 예약됨

variant()가 QUuid::DCE 을 반환하는 경우 UUID에는 QUuid::data3 의 가장 중요한 네 비트에 버전 필드도 포함되며, version()를 호출하여 QUuid에 어떤 버전이 포함되어 있는지 확인할 수 있습니다. 모든 숫자 값을 매개변수로 허용하는 생성자를 사용하여 QUuid의 인스턴스를 생성하는 경우 다음 표를 사용하여 매개변수 w2 의 가장 중요한 네 비트를 설정하면 QUuid::data3 이 되고 가장 중요한 네 비트에 버전 필드가 포함됩니다.

msb0msb1msb2msb3버전
0001시간
0010임베디드 POSIX
0011Md5(이름)
0100Random
0101Sha1

위 표에 나열된 DCE 버전에 대한 필드 레이아웃은 네트워크 워킹 그룹 UUID 사양에 명시되어 있습니다.

대부분의 플랫폼은 uuidgenguidgen 과 같은 새 UUID를 생성하는 도구를 제공합니다. 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)에서 문자열 표현의 서식을 제어하는 데 사용됩니다. 가능한 값은 다음과 같습니다:

Constant설명
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 에 사용되는 값을 정의합니다. 변형 필드의 값에 따라 128비트 값의 레이아웃이 결정됩니다.

Constant설명
QUuid::VarUnknown-1변형을 알 수 없음
QUuid::NCS0NCS(네트워크 컴퓨팅 시스템) 하위 호환성을 위해 예약됨
QUuid::DCE2분산 컴퓨팅 환경에서 사용하는 체계입니다. QUuid
QUuid::Microsoft6Microsoft 이전 버전과의 호환성을 위해 예약됨(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()는 "{00000000-0000-0000-0000-000000000000}"로 널 UUID를 출력합니다.

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

문자열 text 에서 QUuid 객체를 생성하며, 형식은 '-'로 구분된 5개의 16진수 필드(예: "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx}")로 지정해야 합니다(여기서 각 'x'는 16진수). 여기에 표시된 중괄호는 선택 사항이지만 포함하는 것이 일반적입니다. 변환에 실패하면 null UUID가 생성됩니다. 5개의 16진수 필드가 QUuid의 공용 데이터 멤버에 매핑되는 방식에 대한 설명은 toString()를 참조하세요.

참고: 6.3 이전 Qt 버전에서 이 생성자는 QAnyStringView 을 취하는 하나의 생성자 대신 QString, QByteArrayconst 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에서 설명하는 기본 데이터입니다.

참고: 6.8 이전 Qt 버전에서 이 함수는 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에서 설명하는 기본 데이터입니다.

참고: 6.8 이전 Qt 버전에서 이 함수는 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 을 새로 생성합니다.

참고: 이 함수는 Apple 플랫폼에서만 사용할 수 있습니다.

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

RFC 4122 섹션 4.1.2에 명시된 대로 UUID의 이진 표현으로 QUuid 객체를 만듭니다. toRfc4122 ()의 순서에 대한 자세한 설명은 bytes 필요를 참조하세요.

허용되는 바이트 배열은 사람이 읽을 수 있는 형식이 아닙니다.

변환에 실패하면 null UUID가 생성됩니다.

참고: 6.3 이전 Qt 버전에서는 이 함수가 QByteArrayView 이 아닌 QByteArray 을 취했습니다.

toRfc4122(), QUuid() 및 fromBytes()도 참조하세요 .

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

string 문자열에서 QUuid 객체를 생성하며, 이 객체의 형식은 '-'로 구분된 5개의 16진수 필드(예: "{xxxxxx-xxxx-xxxx-xxxx-xxxxxx}")로 지정해야 합니다(여기서 각 'x'는 16진수). 여기에 표시된 중괄호는 선택 사항이지만 포함하는 것이 일반적입니다. 변환에 실패하면 null UUID가 반환됩니다. 5개의 16진수 필드가 QUuid 의 공개 데이터 멤버에 매핑되는 방식에 대한 설명은 toString()를 참조하세요.

참고: 6.3 이전 Qt 버전에서는 이 함수가 QAnyStringView 를 취하는 하나의 함수 대신 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-000000000000}인 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

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

mode 매개변수로 제어되는 포맷을 사용하여 QUuid 의 문자열 표현을 반환합니다. 왼쪽에서 오른쪽으로, QUuid 의 4개의 공개 데이터 멤버에서 다음과 같이 5개의 16진수 필드를 가져옵니다:

필드 번호Source
1data1
2data2
3data3
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절 "레이아웃 및 바이트 순서"에 따라 형식이 지정됩니다.

순서는 다음과 같습니다:

필드 번호Source
1data1
2data2
3data3
4data4[0] .. data4[7]

이 함수가 반환하는 바이트 배열의 바이트는 toBytes()와 동일한 바이너리 콘텐츠를 포함합니다.

toBytes()도 참조하세요 .

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

mode 매개변수로 제어되는 포맷을 사용하여 QUuid 의 문자열 표현을 반환합니다. 왼쪽에서 오른쪽으로, QUuid 의 4개의 공개 데이터 멤버에서 다음과 같이 5개의 16진수 필드를 가져옵니다:

필드 번호Source
1data1
2data2
3data3
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()도 참조하세요 .

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

UUID의 variant field 값을 반환합니다. 반환값이 QUuid::DCE 인 경우 version()을 호출하여 어떤 레이아웃을 사용하는지 확인합니다. null UUID는 알 수 없는 변형으로 간주됩니다.

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)

Qt QUuid 에 Windows guid 를 할당합니다.

경고: 이 함수는 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)

seed 을 사용하여 key 에 대한 해시값을 반환합니다.

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

lhs UUID가 Windows GUID rhs 와 같지 않은 경우 true 를 반환하고, 그렇지 않으면 false 을 반환합니다.

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

lhs QUuidrhs QUuid 이 다르면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

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

UUID id 를 데이터 스트림 s 에 씁니다.

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

디버깅 정보를 위해 출력 스트림에 UUID id 를 씁니다 dbg.

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

lhs UUID가 Windows GUID rhs 와 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

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

lhs QUuidrhs QUuid 이 동일하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

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

s 스트림에서 id 으로 UUID를 읽습니다.

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