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 代码
// 生成一个唯一的ID
QUuid 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_OBJECT
public:
QUid(QWidget *parent = nullptr);
~QUid();
private:
Ui::QUidClass ui;
};
3 .cpp
#include "QUid.h"
QUid::QUid(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
// 生成一个唯一的ID
QUuid 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()
{
}