UUID 通常由 128 位(16 字节)组成,通常表示为 32 个十六进制数字,分为五个部分,格式如下:
QUuid 是 Qt 框架中用于生成和处理 UUID(通用唯一标识符)的类。UUID 是一种标准的标识符格式,通常用于唯一标识信息或对象。以下是 QUuid 的原理和相关概念:
UUID 通常由 128 位(16 字节)组成,通常表示为 32 个十六进制数字,分为五个部分,格式如下:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
其中:
- 前 8 位:时间低位
- 接下来的 4 位:时间中位
- 接下来的 4 位:时间高位和版本
- 接下来的 4 位:时钟序列和保留位
- 最后 12 位:节点(通常是 MAC 地址)
UUID 的版本
UUID 有多个版本,最常用的版本包括:
- 版本 1:基于时间和节点(通常是 MAC 地址)生成。
- 版本 3:基于命名空间和 MD5 哈希生成。
- 版本 4:随机生成,通常使用随机数生成器。
- 版本 5:基于命名空间和 SHA-1 哈希生成。
QUuid 的实现
在 Qt 中,QUuid 提供了以下功能:
- 生成 UUID:使用 createUuid() 方法生成一个新的 UUID。默认情况下,Qt 使用版本 4(随机生成)来创建 UUID。
- 转换:可以将 UUID 转换为字符串表示形式(带大括号)或从字符串解析为 UUID。
- 比较:可以比较两个 UUID 是否相等。
- 操作:提供了一些方法来处理 UUID,例如获取其字节表示。
转载请附上文章出处与本文链接。
QUUID 使用详解目录
1 代码
2 .h
3 .cpp
4 其它文章
1 代码
// 生成一个唯一的IDQUuid uuid = QUuid::createUuid();// 将ID转换为字符串QString uuidString = uuid.toString();// 去掉大括号uuidString.remove(QChar('{'));uuidString.remove(QChar('}'));QDateTime currentDateTime = QDateTime::currentDateTime();QString formattedString = currentDateTime.toString("yyyyMMddHHmm");qDebug() << formattedString + uuidString;
202410092345dd3681d7-6458-439b-b668-5c2f607ba483
2 .h
#pragma once#include <QtWidgets/QMainWindow>
#include "ui_QUid.h"#include <QDebug>
#include <QUuid>
#include <QDateTime>class QUid : public QMainWindow
{Q_OBJECTpublic:QUid(QWidget *parent = nullptr);~QUid();private:Ui::QUidClass ui;
};
3 .cpp
#include "QUid.h"QUid::QUid(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);// 生成一个唯一的IDQUuid uuid = QUuid::createUuid();// 将ID转换为字符串QString uuidString = uuid.toString();// 去掉大括号uuidString.remove(QChar('{'));uuidString.remove(QChar('}'));QDateTime currentDateTime = QDateTime::currentDateTime();QString formattedString = currentDateTime.toString("yyyyMMddHHmm");qDebug() << formattedString + uuidString;
}QUid::~QUid()
{}
4 其它文章
QDateTime 使用详解-CSDN博客