【QT】常用类

欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:QT

目录
- 👉🏻QMediaPlayer
- 👉🏻QMediaPlaylist
- setPlaybackMode
- 👉🏻QDir
- 👉🏻QFileDialog
- 👉🏻QList
- 👉🏻QUrl
- 👉🏻QNetworkAccessManager
- 👉🏻QNetworkRequest、QNetworkReply
👉🏻QMediaPlayer
🍎 基本功能
QMediaPlayer 是 Qt 框架中的一个类,用于处理音频和视频的播放。它提供了以下基本功能:
- 播放音频和视频:能够播放各种格式的音频和视频文件。
- 控制播放:支持播放、暂停、停止、快进、快退等控制功能。
- 媒体信息获取:可以获取播放媒体的时长、当前播放位置等信息。
- 音量和播放速度控制:能够设置音量和播放速度。
- 播放状态监控:能够响应播放状态的变化,如播放完成、错误发生等。
🍎 常用方法
以下是 QMediaPlayer 的一些常用方法及其功能:
play():开始播放媒体。pause():暂停播放。stop():停止播放。setMedia(const QMediaContent &media):设置要播放的媒体内容。setVolume(int volume):设置音量(范围从 0 到 100)。setPlaybackRate(qreal rate):设置播放速度(如 1.0 为正常速度,0.5 为半速,2.0 为双倍速)。currentMedia():获取当前播放的媒体内容。state():获取当前播放状态(如播放中、暂停中、停止中)。duration():获取媒体的总时长(以毫秒为单位)。position():获取当前播放位置(以毫秒为单位)。setPosition(qint64 position):设置播放位置(以毫秒为单位)。
🍎 示例代码
下面是一个简单的示例,展示了如何使用 QMediaPlayer 播放一个音频文件:
#include <QCoreApplication>
#include <QMediaPlayer>
#include <QMediaContent>
#include <QUrl>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 创建 QMediaPlayer 实例QMediaPlayer *player = new QMediaPlayer();// 设置媒体内容(音频文件路径)QMediaContent media(QUrl::fromLocalFile("/path/to/your/audiofile.mp3"));player->setMedia(media);// 设置音量(范围:0 到 100)player->setVolume(50);// 开始播放音频player->play();// 运行应用程序return a.exec();
}
🍎 进阶用法示例
下面是一个更复杂的示例,展示了如何设置播放速度、控制播放位置以及响应播放状态变化:
#include <QCoreApplication>
#include <QMediaPlayer>
#include <QMediaContent>
#include <QUrl>
#include <QTimer>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QMediaPlayer *player = new QMediaPlayer();// 设置媒体内容(音频文件路径)QMediaContent media(QUrl::fromLocalFile("/path/to/your/audiofile.mp3"));player->setMedia(media);// 设置音量player->setVolume(70);// 设置播放速度player->setPlaybackRate(1.5); // 1.5 倍速播放// 开始播放player->play();// 设置定时器用于检查播放状态QTimer *timer = new QTimer();QObject::connect(timer, &QTimer::timeout, [player]() {qDebug() << "Current position:" << player->position();if (player->state() == QMediaPlayer::StoppedState) {qDebug() << "Playback stopped.";}});timer->start(1000); // 每秒检查一次return a.exec();
}
这个示例不仅展示了如何设置播放速度,还使用了定时器来检查播放位置和播放状态。
🍎 注意事项
- 依赖模块:确保你的 Qt 项目包含了
Qt Multimedia模块,并在CMakeLists.txt或.pro文件中进行了正确配置。 - 平台支持:不同平台对多媒体格式的支持可能有所不同,确保检查 Qt 文档以了解支持的格式和功能。
- 错误处理:在实际应用中,考虑添加更多的错误处理代码,以提高用户体验和应用的稳定性。
👉🏻QMediaPlaylist
QMediaPlaylist 用于管理和控制多个媒体文件的播放顺序。以下是一些主要功能和常用方法:
基本功能
- 管理媒体条目:添加、移除和操作播放列表中的媒体条目。
- 控制播放顺序:设置播放模式,如顺序播放、随机播放或循环播放。
- 获取播放信息:访问播放列表中的当前媒体和播放位置。
常用方法
addMedia(const QMediaContent &content):将媒体文件添加到播放列表。removeMedia(int index):从播放列表中移除指定位置的媒体文件。clear():清空播放列表。setCurrentIndex(int index):设置当前播放的媒体条目索引。next()和previous():切换到下一个或上一个媒体条目。setPlaybackMode(QMediaPlaylist::PlaybackMode mode):设置播放模式,如Sequential,Loop,Random等。currentIndex():获取当前播放的媒体条目索引。mediaCount():获取播放列表中的媒体条目数量。
示例代码
下面的示例展示了如何使用 QMediaPlaylist 来创建一个播放列表并管理其内容:
#include <QCoreApplication>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QMediaContent>
#include <QUrl>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QMediaPlayer *player = new QMediaPlayer();QMediaPlaylist *playlist = new QMediaPlaylist();// 添加媒体到播放列表playlist->addMedia(QMediaContent(QUrl::fromLocalFile("/path/to/audio1.mp3")));playlist->addMedia(QMediaContent(QUrl::fromLocalFile("/path/to/audio2.mp3")));playlist->addMedia(QMediaContent(QUrl::fromLocalFile("/path/to/audio3.mp3")));// 设置播放模式为随机playlist->setPlaybackMode(QMediaPlaylist::Random);// 设置当前播放的索引playlist->setCurrentIndex(0);// 将播放列表设置给播放器player->setPlaylist(playlist);// 开始播放player->play();return a.exec();
}
在这个示例中,我们创建了一个 QMediaPlaylist 对象,添加了几个媒体文件,设置了播放模式为随机,然后将其分配给 QMediaPlayer 进行播放。你可以根据需要调整播放模式和操作播放列表。
setPlaybackMode
-
QMediaPlaylist::Sequential:这是播放模式的一种,意味着播放列表中的媒体将按照它们在列表中的顺序依次播放。当当前媒体播放完毕时,播放器将自动开始播放列表中的下一个媒体,直到播放列表结束。如果播放列表中的所有媒体都播放完毕,播放器将停在最后一个媒体。 -
其他播放模式:
QMediaPlaylist::Loop:播放列表中的媒体将重复播放。播放完列表中的所有媒体后,播放器将重新从列表的开头开始播放。QMediaPlaylist::CurrentItemInLoop:当前播放的媒体将被重复播放。播放列表中的其他媒体不会自动播放,直到手动更改。QMediaPlaylist::Random:媒体将在列表中以随机顺序播放。每次播放列表中的媒体顺序都是随机的。
👉🏻QDir
QDir 是 Qt 提供的一个类,用于简化文件和目录的操作。以下是一些常见用法:
-
列出目录内容:
QDir dir("/path/to/directory"); QStringList files = dir.entryList(QDir::Files); -
获取文件信息:
QFileInfo fileInfo("/path/to/file"); QString fileName = fileInfo.fileName(); qint64 fileSize = fileInfo.size(); -
创建目录:
QDir dir; if (!dir.exists("/path/to/new/directory")) {dir.mkpath("/path/to/new/directory"); } -
删除目录:
QDir dir("/path/to/directory"); dir.removeRecursively(); -
重命名文件:
QDir dir("/path/to/directory"); dir.rename("oldName.txt", "newName.txt");
QDir 提供了丰富的功能来管理文件和目录,使文件系统操作更方便。
👉🏻QFileDialog
QFileDialog 是 Qt 提供的一个对话框类,用于让用户选择文件或目录。它支持多种模式和配置选项,可以用于打开、保存、选择目录等操作。以下是一些常见的用法示例:
基本用法
-
打开文件对话框
#include <QFileDialog> #include <QWidget>QString openFile(QWidget *parent) {QString fileName = QFileDialog::getOpenFileName(parent, "Open File", "", "Files (*.*);;Text Files (*.txt);;Images (*.png *.jpg)");return fileName; }parent:对话框的父窗口。"Open File":对话框的标题。"":默认目录路径。"Files (*.*);;Text Files (*.txt);;Images (*.png *.jpg)":文件过滤器,用于筛选可见文件类型。
-
保存文件对话框
#include <QFileDialog> #include <QWidget>QString saveFile(QWidget *parent) {QString fileName = QFileDialog::getSaveFileName(parent, "Save File", "", "Text Files (*.txt);;Images (*.png *.jpg)");return fileName; }parent:对话框的父窗口。"Save File":对话框的标题。"":默认文件路径和名称。"Text Files (*.txt);;Images (*.png *.jpg)":文件过滤器。
-
选择目录对话框
#include <QFileDialog> #include <QWidget>QString selectDirectory(QWidget *parent) {QString directory = QFileDialog::getExistingDirectory(parent, "Select Directory", "");return directory; }parent:对话框的父窗口。"Select Directory":对话框的标题。"":默认目录路径。
高级用法
-
设置对话框选项
QFileDialog dialog(parent); dialog.setFileMode(QFileDialog::ExistingFiles); // 允许选择多个文件 dialog.setNameFilters(QStringList() << "Images (*.png *.jpg)" << "Text Files (*.txt)"); dialog.setViewMode(QFileDialog::List); // 以列表模式显示文件 -
响应用户选择
QFileDialog dialog(parent); dialog.setFileMode(QFileDialog::ExistingFiles); if (dialog.exec()) {QStringList selectedFiles = dialog.selectedFiles();// 处理选择的文件for (const QString &file : selectedFiles) {qDebug() << file;} }dialog.exec():显示对话框并等待用户操作。dialog.selectedFiles():返回用户选择的文件列表(如果选择的是多个文件)。
👉🏻QList
QList 是 Qt 框架中的一个模板类,用于存储和管理一组同类型的对象。它类似于标准 C++ 的 std::vector 或 std::list,但提供了更多的功能和便利性来处理 Qt 类型的数据。QList 提供了对动态数组的支持,并且可以存储任意类型的对象,只要这些对象是可拷贝的或可移动的。
基本用法
-
创建和初始化
QList#include <QList> #include <QString>QList<QString> stringList; // 创建一个空的 QList 对象你可以通过初始化列表或
append()方法来初始化列表:QList<int> numberList = {1, 2, 3, 4, 5}; // 使用初始化列表 -
添加和插入元素
QList<QString> stringList; stringList.append("Hello"); // 在末尾添加元素 stringList.prepend("World"); // 在开头添加元素 stringList.insert(1, "Qt"); // 在指定位置插入元素 -
访问和修改元素
QString firstItem = stringList.at(0); // 获取第一个元素 stringList[1] = "Changed"; // 修改第二个元素at(index):返回指定索引位置的元素。operator[]:使用下标操作符访问元素(不检查边界)。
-
遍历
QListfor (const QString &str : stringList) {qDebug() << str; }或使用迭代器:
for (QList<QString>::const_iterator it = stringList.constBegin(); it != stringList.constEnd(); ++it) {qDebug() << *it; } -
删除元素
stringList.removeAt(1); // 删除指定位置的元素 stringList.removeOne("Qt"); // 删除第一个匹配的元素 stringList.clear(); // 删除所有元素removeAt(index):删除指定索引位置的元素。removeOne(value):删除第一个匹配的元素。clear():清空所有元素。
特性
- 动态大小:
QList是一个动态数组,可以自动调整大小以适应添加或删除的元素。 - 支持值类型和指针类型:可以存储任意类型的对象,包括 Qt 自带的类型和用户自定义的类型(需要拷贝构造函数和赋值运算符正常工作)。
- 内存管理:对于存储指针类型的
QList,需要用户负责对象的内存管理。
👉🏻QUrl
QUrl 是 Qt 框架中的一个类,用于处理和操作 URL(统一资源定位符)。它提供了一种简单的方式来解析、构建和修改 URL,并支持处理常见的 URL 组件,如协议、主机、路径和查询参数。
基本用法
-
创建和解析 URL
#include <QUrl> #include <QDebug>QUrl url("https://www.example.com:8080/path/to/resource?query=1#fragment");QUrl会自动解析 URL 并将其拆分为各个部分。 -
访问和修改 URL 组件
qDebug() << "Scheme:" << url.scheme(); // https qDebug() << "Host:" << url.host(); // www.example.com qDebug() << "Port:" << url.port(); // 8080 qDebug() << "Path:" << url.path(); // /path/to/resource qDebug() << "Query:" << url.query(); // query=1 qDebug() << "Fragment:" << url.fragment(); // fragmenturl.setPath("/new/path"); // 修改路径 -
构建 URL
QUrl newUrl; newUrl.setScheme("http"); newUrl.setHost("example.com"); newUrl.setPath("/path"); newUrl.setQuery("param=value");qDebug() << newUrl.toString(); // http://example.com/path?param=value -
处理 URL 编码
QString encoded = QUrl::toPercentEncoding("This is a test!"); QString decoded = QUrl::fromPercentEncoding(encoded.toUtf8());QUrl::toPercentEncoding():对字符串进行百分号编码。QUrl::fromPercentEncoding():对百分号编码的字符串进行解码。
特性
- 支持 URL 解析和构建:可以轻松地解析和构建 URL 的各个部分。
- 支持 URL 编码:处理 URL 编码和解码。
- 处理相对 URL:可以处理相对 URL 和基于基础 URL 的解析。
示例代码
#include <QCoreApplication>
#include <QUrl>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QUrl url("https://www.example.com:8080/path/to/resource?query=1#fragment");qDebug() << "Original URL:" << url.toString();qDebug() << "Host:" << url.host();qDebug() << "Port:" << url.port();url.setPath("/new/path");url.setQuery("param=value");qDebug() << "Modified URL:" << url.toString();return a.exec();
}
QUrl 提供了一种强大的方式来处理 URL,在 Qt 应用程序中,它非常有用,特别是当涉及到网络操作时。
👉🏻QNetworkAccessManager
QNetworkAccessManager 是 Qt 框架中用于处理网络请求的类。以下是其基本用法:
- 创建
QNetworkAccessManager实例
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
- 发起网络请求
使用 QNetworkAccessManager 发起请求,可以是 GET、POST、PUT 等。以下示例演示如何发起 GET 请求:
QNetworkRequest request(QUrl("https://example.com"));
QNetworkReply *reply = manager->get(request);
- 处理请求结果
连接 QNetworkReply 的信号与槽来处理请求结果:
connect(reply, &QNetworkReply::finished, [=]() {if (reply->error() == QNetworkReply::NoError) {QByteArray responseData = reply->readAll();// 处理响应数据} else {// 处理错误qDebug() << "Error:" << reply->errorString();}reply->deleteLater();
});
- 发起 POST 请求
示例代码展示如何发起 POST 请求,并发送数据:
QNetworkRequest request(QUrl("https://example.com/submit"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");QByteArray postData;
postData.append("key1=value1&key2=value2");QNetworkReply *reply = manager->post(request, postData);
- 取消请求
你可以通过 QNetworkReply 对象取消请求:
reply->abort();
- 管理 SSL 证书(可选)
如果需要自定义 SSL 证书处理,可以使用 QNetworkAccessManager 的 SSL 配置功能:
connect(manager, &QNetworkAccessManager::sslErrors, [](QNetworkReply* reply, const QList<QSslError>& errors) {// 处理 SSL 错误reply->ignoreSslErrors();
});
以上是 QNetworkAccessManager 的基本用法,能够满足大多数网络请求的需求。
👉🏻QNetworkRequest、QNetworkReply
QNetworkRequest
QNetworkRequest 用于定义网络请求的配置,包括 URL、请求头和 SSL 配置等。
-
创建请求:
QNetworkRequest request(QUrl("https://example.com")); -
设置请求头:
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); -
设置 SSL 配置(可选):
QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration(); request.setSslConfiguration(sslConfig);
QNetworkReply
QNetworkReply 用于处理网络请求的响应,包括获取数据、处理错误等。
-
获取数据:
QByteArray responseData = reply->readAll(); -
处理错误:
if (reply->error() != QNetworkReply::NoError) {qDebug() << "Error:" << reply->errorString(); } -
连接信号与槽:
connect(reply, &QNetworkReply::finished, [=]() {if (reply->error() == QNetworkReply::NoError) {QByteArray responseData = reply->readAll();// 处理响应数据} else {qDebug() << "Error:" << reply->errorString();}reply->deleteLater(); }); -
取消请求:
reply->abort();
总结:QNetworkRequest 配置请求,QNetworkReply 处理响应。
相关文章:
【QT】常用类
欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:QT 目录 👉🏻QMediaPlayer👉🏻QMediaPlaylistsetPlaybackMode 👉🏻QDir👉…...
从index_put出发全面学习cuda和pytorch技术
一 前言 深感目前对于cuda和pytorch所涉及知识的广度和深度,但一时又不知道该如何去学习,经过多日的考虑,还是决定管中窥豹,从一个算子出发,抽丝剥茧,慢慢学习,把学习中碰到的问题都记录下来,希望可以坚持下去。 二 函数功能描述 【torch算子】torch.index_put和tor…...
浅谈住房城乡建设部科技创新平台布局重点方向
最近住房建设部组织开展住房城乡建设部科技创新平台(以下简称部科技创新平台)申报工作。详细内容见住房城乡建设部科技创新平台开始申报了 (qq.com)。在这里有4大方向共15个课题。内容见下图: 虽然我是做技术的,但是如何体现创新还…...
调用 write()函数后,如何知道数据是否已经写入磁盘?
在 Linux 中调用 write() 函数后,可以通过以下几种方式来确定数据是否已经写入磁盘: 一、使用同步函数 1. fsync() 函数: - 这个函数会强制将与文件描述符相关的所有修改过的内核缓冲区写入磁盘,并等待直到磁盘 I/O 操作完…...
策略路由与路由策略的区别
🐣个人主页 可惜已不在 🐤这篇在这个专栏 华为_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 一、主体不同 二、方式不同 三、规则不同 四、定义和基本概念 一、主体不同 1、路由策略:是为了改…...
从底层原理上理解ClickHouse 中的稀疏索引
稀疏索引(Sparse Indexes)是 ClickHouse 中一个重要的加速查询机制。与传统数据库使用的 B-Tree 或哈希索引不同,ClickHouse 的稀疏索引并不是为每一行数据构建索引,而是为数据存储的块或部分数据生成索引。这种索引的核心思想是通…...
xtu oj 锐角三角形
锐角三角形 题目描述 n条边,任选3条边,能组成多少个锐角三角形(选的边不同就认为是不同的三角形)? 输入 第一个是一个整数T(1≤T≤1000),表示样例的个数。 每个样例占2行,第一行是一…...
MATLAB系列04:循环结构
MATLAB系列04:循环结构 4. 循环结构4.1 while循环4.2 for循环4.2.1 运算的细节4.2.2 break语句和continue语句4.2.3 嵌套循环 4.3 逻辑数组和向量化4.3.1 逻辑数组的重要性4.3.2 用 if/else 结构和逻辑数组创建等式 4.4 总结 4. 循环结构 循环(loop)是一种 MATLAB …...
虹科方案 | 精准零部件测试!多路汽车开关按键功能检测系统
欢迎关注虹科,为您提供最新资讯! #LIN/CAN总线 #零部件测试 #CAN数据 导读 在汽车制造业中,零部件的安全性、功能性和可靠性是确保车辆整体性能的关键。虹科针对车辆零部件的LIN/CAN总线仿真测试,提出了基于虹科Baby-LIN系列产…...
【加密算法基础——AES CBC模式代码解密实践】
AES 解密实践之代码实现 AES 解密使用python脚本比较灵活,但是一定要保证脚本是调试过的,才能在找到正确的密文,密钥,初始向量的情况下,解出正确的明文。但是对于AES解密,命令行无法处理key截断的问题。 实…...
【ViT+Dis】Deepfake Detection Scheme Based on Vision Transformer and Distillation
文章目录 Deepfake Detection Scheme Based on Vision Transformer and Distillationkey points深伪检测检测算法蒸馏法与教师网络实验训练:参数总结Deepfake Detection Scheme Based on Vision Transformer and Distillation 会议:2021 作者: key points 以往基于CNN结…...
maya-vray渲染蒙版
要用一个叫vrayMulWrapper的材质球,把alpha Conterbution调到-1,勾选matte surface启用蒙版物体。...
计网简简单单复习一下
文章目录 基础体系结构(分层模型)为什么要分层?OSI 七层模型?每一层的作用?TCP/IP 四层模型是什么?每一层的作用是什么?五层体系结构以及对应的协议每一层常见协议有哪些?从输入 URL 到页面展示到底发生了什么?URI和URL的区别;forward和redirect的区别DNS作用是什么?D…...
PyQt5-loading-圆环加载效果
效果预览 代码实现 from PyQt5.QtCore import QSize, pyqtProperty, QTimer, Qt, QThread, pyqtSignal from PyQt5.QtGui import QColor, QPainter from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QVBoxLayout, QLabel, QGridLayoutclass Cir…...
RabbitMQ Spring客户端使用
注解声明式队列和交换机 java自带序列化工具类,将java对象序列化为字节数组,用于网络传输。 jdk序列号存在缺陷,(不安全,占用空间大等) 推荐使用JSON的序列化: springboot扫描包使配置生效&…...
Arduino IDE离线配置第三方库文件-ESP32开发板
简洁版可以使用uget等,将文件下载到对应文件夹下,然后安装。 esp32之arduino配置下载提速 录屏 Arduino IDE离线配置第三方库文件ESP32 资源 Linux https://download.csdn.net/download/ZhangRelay/89749063 第三方开发板 非默认支持的开发板 linu…...
Node.js 安装及项目实践
node.js安装 node安装,选择版本 一直next,或者自己修改路径,添加两个包 选择自己的安装的node的路径,cmd或者winr cmd 显示node与npm的版本号 node -vnpm -v可以跟着这个博客将node安装 2024最新版Node.js下载安装及环境配…...
如何从混合信号中剔除某一信号——Schmidt正交化的使用(信号互相关)
本文仅用作方法记录,不讲详细原理和底层逻辑。 在面对混合的接收信号的情况下,例如接收信号: Y a 1 X 1 a 2 X 2 a 3 X 3 N Ya_1X_1a_2X_2a_3X_3N Ya1X1a2X2a3X3N 假设信号 X 1 X_1 X1、 X 2 X_2 X2、 X 3 X_3 X3在时域和频域上…...
I2C/IIC学习笔记
I2C/IIC 有些同学I2C和IIC分不清,I2C和IIC实际上是指同一种通信协议。I2C是Inter-Integrated Circuit的缩写,而IIC是它的另一种表述方式,代表的是同一个意思,即“集成电路间总线”。I2C是一种由飞利浦公司(现恩智浦半…...
Servlet学习详解--基本涵盖所有Servlet知识点
目录 一、Servlet二、 Servlet入门2.1. 执行原理2.2. 实现Servlet接口重写其五个方法及其生命周期 三、Request请求对象3.1. 获取请求消息数据3.2. 获取请求头数据3.3. 获取请求体数据3.4. 设置编码3.5. 其他通用功能3.6. 请求转发(Forward)3.7. 转发共享数据 四、Response对象…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
