QUUID 使用详解

news2024/11/27 0:51:09

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 代码

	// 生成一个唯一的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()
{

}

4 其它文章

QDateTime 使用详解-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2204724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

厦门网站制作的趋势与最佳实践

厦门网站制作的趋势与最佳实践 随着数字化时代的到来&#xff0c;厦门的网站制作行业也在不断演变&#xff0c;呈现出多样化的趋势与最佳实践。这些变革不仅满足了市场的需求&#xff0c;也为企业的数字化转型提供了强有力的支持。 首先&#xff0c;响应式设计已成为网站制作的…

自由学习记录(5)

git命令行init仓库 mkdir的命令行使用 -p 是 mkdir 命令中的一个选项&#xff0c;表示 "parent"&#xff0c;意思是创建所有必要的父目录。如果使用 -p&#xff0c;即使父目录不存在&#xff0c;命令也会自动创建它们&#xff0c;而不会报错。 在 Git 中&#xff0…

Android复杂问题分析工具bugreportz详解

文章目录 bugreportz详细介绍功能与作用使用方法生成详细报告检查进度bugreportz 的优势分析报告 如何分析1. 解压 ZIP 文件2. 分析主要文件2.1 bugreport.txt2.2 logcat.txt2.3 kernel.log / last_kmsg2.4 events.log2.5 traces.txt2.6 dumpstate_board.txt 3. 工具支持4. 重点…

计算机的错误计算(一百一十九)

摘要 用错数解释计算机的错误计算&#xff08;一百一十八&#xff09;中的错误计算。 计算机的错误计算&#xff08;一百一十八&#xff09;给出一个循环迭代 用C语言或Java编程计算&#xff0c;则 均是错误结果。 下面用错数解释其出错原因。 首先&#xff0c;将迭代看作 …

ARM base instruction -- umull

无符号乘法运算 Unsigned Multiply Long multiplies two 32-bit register values, and writes the result to the 64-bit destination register. 将两个32位寄存器值相乘&#xff0c;并将结果写入64位目标寄存器。 64-bit variant UMULL <Xd>, <Wn>, <Wm&g…

springmvc直接访问 上下文路径 302 后路径更改并跳转源码解析

【问题现状】 application.yml 配置如下属性&#xff1a; server:servlet:context-path: /learning直接访问&#xff1a;http://localhost:8888/learning 路径时&#xff0c;会返回302的响应状态&#xff1b;并跳转路径&#xff1a;http://localhost:8888/learning/ (原路径后…

MapReduce工作机制源码解析

目录 1. MapTask工作机制2. ReduceTask工作机制3. ReduceTask并行度决定机制4. MapTask & ReduceTask源码解析 1. MapTask工作机制 MapTask一共分为五个阶段&#xff1a;Read、Map、Collect、溢写、Merge阶段。 在第4步MrAppMaster启动之前都是job的提交流程&#xff0c;…

keras yolo8目标检测

是从coco数据集提取其中的veh_ids[3,6,8,10] labels[car,bus,truck,traffic light]来做目标检测,分别表示汽车,公交车&#xff0c;卡车&#xff0c;交通灯,用的backbone keras_cv.models.YOLOV8Backbone.from_preset( "yolo_v8_m_backbone_coco" ),不用预训练…

构造mex(牛客周赛 Round 59)

题目链接&#xff1b; D-构造mex_牛客周赛 Round 59 (nowcoder.com) 题目描述&#xff1a; 输出和输出描述&#xff1a; 输入样例&#xff1a; 3 6 3 3 7 4 3 6 6 0 输出样例&#xff1a; NO YES 4 0 1 2 YES 1 1 1 1 1 1 分析&#xff1a; 数学思维题&#xff0c;赛后看了一…

Spring Cloud Bus:实现分布式系统中的消息传递与状态同步

在分布式系统中&#xff0c;服务之间的消息传递和状态同步是一个关键需求。Spring Cloud Bus提供了一个轻量级的消息代理连接分布式系统的节点&#xff0c;用于广播状态更改或管理指令。本文将探讨Spring Cloud Bus的功能、使用场景及其在分布式系统中的作用。 Spring Cloud B…

【星汇极客】STM32 HAL库各种模块开发之1.8TFT屏幕

前言 本人是一名嵌入式学习者&#xff0c;在大学期间也参加了不少的竞赛并获奖&#xff0c;包括&#xff1a;江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三等。 暑假的时候参加了太多的比赛&#…

Node.js+Express毕设论文选题最新推荐题目和方向

目录 一、前言 二、毕设选题推荐 三、总结 四、附录&#xff08;手册、官网、资源教程等&#xff09; 1. Node.js 官方资源 2. Express 官方资源 3.安装方法 4 创建示例 一、前言 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;它允许开发者使用…

ARM知识点三和串口代码的编写流程

ARM的一些常见问题 ARM 体系结构的主要特点是什么&#xff1f; 精简指令集 (RISC)&#xff1a;ARM 采用 RISC 结构&#xff0c;指令集较小且简单&#xff0c;执行效率高。相比于复杂指令集 (CISC)&#xff0c;RISC 更强调每条指令的执行速度。低功耗设计&#xff1a;ARM 处理…

在北京能不能设计一款可以多屏展示的调度桌

在北京这座科技与创新并蓄的国际大都市&#xff0c;设计一款集高效、智能与多屏展示功能于一体的调度桌&#xff0c;不仅是一个技术挑战&#xff0c;更是对未来工作场景的一次深刻探索与重塑。那么&#xff0c;在北京能不能设计一款可以多屏展示的调度桌呢? 随着信息技术的飞速…

实现MySQL异地多活场景

作为现代化的互联网企业 &#xff0c;最怕的是什么 &#xff1f;是意外&#xff01;由各种意外导致的数据库问题&#xff0c;磁盘问题、网络问题、人员误操作问题等等&#xff0c;这些问题都可能导致数据不可用或者丢失&#xff0c;造成重大损失。 因此&#xff0c;很少会有企…

【吊打面试官系列-微服务面试题】微服务架构有哪些优势?

大家好&#xff0c;我是锋哥。今天分享关于【微服务架构有哪些优势&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 微服务架构有哪些优势&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 微服务架构是一种软件架构风格&#xff0c;将单…

“Flash 闪存”基础知识及 “SD NAND Flash”产品测试指南

目录 “Flash 闪存”基础知识及 “SD NAND Flash”产品测试指南一、“FLASH闪存”是什么&#xff1f;1. 简介2. 分类3. 特点4. 虚拟化 二、SD NAND Flash1. 概述2. 特点3. 引脚分配4. 数据传输模式5. SD NAND寄存器6. 通电图7. 参考设计 三、STM32测试例程1. STM32F103读写代码…

CorelDRAW中绘制居民地街道区道路网的绘制

居民地街区道路网的绘制 1.打开软件&#xff0c;点击【文件】→【新建】&#xff0c;建立实验。并导入底图&#xff0c;结果如图1所示&#xff1a; 图1 2.点击【手绘工具】&#xff0c;利用贝塞尔曲线绘制主干道&#xff0c;结果如下图2所示 图2 3.点击【手绘工具】&#xf…

【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第二十七章 交叉编译器的安装和使用

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

前后端分离开发YApid

开头先声明以下&#xff0c;这篇主要用于概念的介绍…… 在当今的互联网应用开发中&#xff0c;前后端分离逐渐成为主流的开发模式。相比于传统的前后端混合开发&#xff0c;这种新模式在灵活性、可维护性和团队协作等方面具有显著优势。 前后端混合开发 在前后端混合开发模式…