[QT开发_音乐播放器项目笔记01]

news2024/9/17 7:40:56

目录

一:常用类

26 QByteArray 是 Qt 框架中的一个类,用于处理字节数组。它提供了动态大小的字节数组,可以用于存储和操作二进制数据,比如文件内容、网络数据等。

QT项目记录:

一:常用类

26 QByteArray 是 Qt 框架中的一个类,用于处理字节数组。它提供了动态大小的字节数组,可以用于存储和操作二进制数据,比如文件内容、网络数据等。

  • 构造与析构

    • QByteArray(): 默认构造函数。
    • QByteArray(const char *str): 从 C 字符串构造。
    • QByteArray(const QByteArray &other): 拷贝构造函数。
  • 大小与容量

    • int size() const: 返回字节数组的大小。
    • int capacity() const: 返回当前分配的内存容量。
    • void resize(int size): 修改数组大小。
  • 数据访问

    • const char* constData() const: 返回只读数据指针。
    • char* data(): 返回可写数据指针。
    • char operator[](int i) const: 按索引访问元素。
  • 字符串操作

    • QByteArray append(const QByteArray &other): 追加另一个字节数组。
    • QByteArray prepend(const QByteArray &other): 在前面添加字节数组。
    • QByteArray mid(int pos, int len = -1) const: 提取子数组。
  • 查找与替换

    • int indexOf(const QByteArray &ba, int from = 0) const: 查找子数组的索引。
    • void replace(int pos, int len, const QByteArray &ba): 替换子数组。
  • 编码与解码

    • QByteArray toBase64() const: 转换为 Base64 编码。
    • QByteArray fromBase64(const QByteArray &ba): 从 Base64 解码。
  • 比较与赋值

    • bool operator==(const QByteArray &other) const: 比较相等性。
    • QByteArray& operator=(const QByteArray &other): 赋值操作符。

在json中的使用:

QByteArray jsonBytes = doc.toJson(); 这行代码的意思是将一个 QJsonDocument 对象 doc 转换为 JSON 格式的字节数组。

doc.toJson()

  • 这个方法将 QJsonDocument 转换为 JSON 字符串,返回一个 QByteArray
  • 字节数组是这样的  {"name":"Alice","age":30}
  • 默认情况下,它生成紧凑格式的 JSON 字符串。

QByteArray jsonBytes

  • jsonBytes 是一个字节数组,存储转换后的 JSON 数据。

用途

  • 传输:可以将 jsonBytes 用于网络传输,例如通过 HTTP 请求发送数据。
  • 存储:可以将 jsonBytes 写入文件或数据库中,以便将 JSON 数据持久化。
  • 进一步处理:可以对 jsonBytes 进行编码、压缩等其他处理。

27  QJsonObject 是 Qt 框架中用于表示 JSON 对象的类。它提供了一个键值对的集合,可以存储各种数据类型,包括数字、字符串、数组、布尔值和其他 JSON 对象。

  • 表示一个 JSON 对象,存储键值对(类似于字典或映射)。
  • 用途
    • 用于表示 JSON 数据的一个部分,可以存储字符串、数字、布尔值、数组或其他 JSON 对象。
  • 常用方法
    • insert(const QString &key, const QJsonValue &value): 插入或更新键值对。
    • remove(const QString &key): 移除指定键。
    • contains(const QString &key) const: 检查是否包含特定键。
    • QJsonValue operator[](const QString &key) const: 通过键访问对应的值。
    • QList<QString> keys() const: 获取所有键的列表。
  • 序列化与反序列化

    • 可以通过 QJsonDocument 来序列化和反序列化 QJsonObject

28  QJsonDocument 表示一个完整的 JSON 文档,可以是一个 JSON 对象或 JSON 数组。

用途:

        用于序列化和反序列化 JSON 数据,将 QJsonObjectQJsonArray 转换为 JSON 字符串,或从字符串解析为对象。

常用方法

  • setObject(const QJsonObject &object): 设置 JSON 文档为一个 JSON 对象。
  • setArray(const QJsonArray &array): 设置 JSON 文档为一个 JSON 数组。
  • QJsonObject object() const: 获取文档中的 JSON 对象(如果是对象)。
  • QJsonArray array() const: 获取文档中的 JSON 数组(如果是数组)。
  • QString toJson(Format format = Compact) const: 将 JSON 文档转换为字符串,支持紧凑和缩进格式。
  • static QJsonDocument fromJson(const QByteArray &data): 从 JSON 字符串解析出 QJsonDocument

 29 QJsonParseError 是 Qt 中用于表示 JSON 解析错误的类。它通常与QJsonDocument 类一起使用,用于在解析 JSON 字符串时报告任何错误。

30 QVariant是 Qt 提供的一个通用值类,可以存储几乎所有 Qt 支持的数据类型的值

是 Qt 提供的一个通用值类,可以存储几乎所有 Qt 支持的数据类型的值,包括基本数据类型(如整数、浮点数、布尔值等)、复杂数据类型(如字符串、列表、映射等)以及用户自定义的数据类型。

31 QSettings 是 Qt 框架中的一个类,用于在应用程序中存储和读取配置信息。

QT项目记录:

问题记录1: Json的序列化和反序列化

序列化定义:将数据结构(如对象、数组等)转换为 JSON 格式的字符串。

用途

  • 将数据保存到文件或数据库。
  • 在网络传输中发送数据。

示例

QJsonObject obj;
obj["name"] = "Alice";
obj["age"] = 30;

QString jsonString = QJsonDocument(obj).toJson(QJsonDocument::Compact);
//Compact:表示生成的 JSON 字符串将采用紧凑格式。
//也就是说,输出的 JSON 字符串不包含任何多余的空格或换行符,
//所有内容都在一行上,以最小化文件大小。

反序列化定义:将 JSON 格式的字符串解析为原始的数据结构(如对象、数组等)。

用途

  • 从文件或数据库读取数据并恢复为可用的对象。
  • 接收网络数据并转换为程序中可用的格式。

示例

QString jsonString = "{\"name\":\"Alice\",\"age\":30}";
QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8());
QJsonObject obj = doc.object();
QString name = obj["name"].toString();
int age = obj["age"].toInt();

总结:

  • 序列化:将对象转为 JSON 字符串。
  • 反序列化:将 JSON 字符串转为对象。

问题记录2:Json对象可以处理,为什么还要将json文档设置为一个json对象呢?

  • 完整性

    • QJsonDocument 可以表示整个 JSON 文档,包含一个 JSON 对象或 JSON 数组。它用于处理整个结构,而不仅仅是单一的键值对集合。
  • 序列化与反序列化

    • QJsonDocument 提供了方便的方法,将 JSON 对象或数组转换为字符串(序列化)或从字符串解析为 JSON 对象/数组(反序列化)。例如,可以将整个 JSON 文档保存到文件或发送到网络。
  • 格式化输出

    • 可以使用 QJsonDocument 控制输出的格式,例如生成紧凑的 JSON 字符串或可读性更好的缩进格式。

  • 使用 QJsonObject:当你只需要处理 JSON 对象的键值对时,可以使用 QJsonObject
  • 使用 QJsonDocument:当需要处理整个 JSON 数据结构,包括需要转换为字符串或解析时,就需要使用 QJsonDocument

问题记录3:QT种如何起一个服务器?

问题记录4:QStackedWidget中通过代码写的页是不能在ui设计的界面中看到?

因为没有运行,就不会整合代码,ui设计是ui设计,代码是代码。只有在运行的时候,会在窗口中共同显示。

    ui->stackedWidget->addWidget(p->from);//将页面显示区域中的一页设置为p->from
    ui->stackedWidget->addWidget(p->musiclist);
    ui->verticalLayout->addWidget(p->musicForm);
//这里是在代码中添加的页,但是在.ui文件中是不能看到的。
//因为,他们根本就不挨着,是分开的,只有在运行时才会显示到界面上去。

问题记录5:layout可以单独使用?

layout单独使用,可以直接将控件拖到窗口中。然后在layout中添加其他控件,这样layout中的控件就能自动布局了。

问题记录6:C中sprintf()函数如何使用

char buf[4096] = {0};
sprintf(buf,"%s%s",count.toStdString().c_str(),pwd.toStdString().c_str());
  1. buf

    • 这是一个字符数组,用于存储格式化后的结果。
  2. "%s%s"

    • 格式字符串,表示将两个字符串拼接在一起。
  3. count.toStdString().c_str()

    • count 转换为标准字符串,然后获取其 C 风格字符串指针。
  4. pwd.toStdString().c_str()

    • pwd 转换为标准字符串,然后获取其 C 风格字符串指针。

结果

  • sprintf()countpwd 的字符串值拼接并存入 buf 中。

问题记录7:QTcpSocket::readyRead()这个信号什么时候可以被触发。

触发条件

  1. 有数据可读
    • 当从远程主机接收到数据并且这些数据可用时,readyRead 信号会被发射。
    • 这意味着 TCP 连接上有新的数据到达,可以通过调用 read(), readAll(), 或 readLine() 等方法读取。

具体场景

  • 客户端

    • 如果你有一个 TCP 客户端连接到服务器,并且服务器发送了一些数据,readyRead 信号会被触发,通知客户端可以读取这些数据。
  • 服务器

    • 在服务器端,当客户端发送请求或数据时,服务器的 QTcpSocket 对象会接收到数据,并发出 readyRead 信号。

通过样式表文件.qss文件,设置widget的边框线为灰色

QWidget

{

border-top: 2px solid gray;

}

border-top: 这个属性用于定义上边框的样式。

  • 2px: 边框的宽度为 2 像素。
  • solid: 边框类型为实线。
  • gray: 边框颜色为灰色。

通过样式表设置自定义界面类中的控件样式

//在前面声明是那个类

musicinfobar QPushButton#pushButton_touxiang
{
    border-radius: 20px;
    background-color:rgb(38,206,170);
}

问题记录8:如何使用自定义的设计师界面类?

//如何将自定义按钮添加到指定的位置呢

//大致的思路都是这样的,自定义一个设计师界面类后,首先先将实例化一个对象,通过类的函数来使用ui指针如在类内设置函数setname,set,填充自定义的界面,之后通过主界面的中控件的函数add...一类的函数,将自定义控件塞到,主界面控件中

QListWidgetItem *item = new QListWidgetItem;
SongList* sl = new SongList;    //自定义的类            
QStringList lineList =  path3.split("-");
item->setSizeHint(sl->size());
ui->songlist->addItem(item);
ui->songlist->setItemWidget(item,sl);
sl->SetSongName(lineList[0]);    //调用自定义的类的函数,来设置自定界面中的内容
sl->SetSongerName(lineList[1]);

QFileInfo中文件操作中的两个函数

fileName() 函数

  • 定义QString fileName() const;
  • 用途:获取包含路径的完整文件名,包括文件的扩展名。

baseName() 函数

  • 定义QString baseName() const;
  • 用途:获取文件的基本名称,即不包括路径和扩展名的部分。

问题记录9:在QT中listwidget中的每行item都可以放一个数据,如何放入数据,如何去除数据

//将数据放入item使用setData函数,如下:
listitem->setData(Qt::UserRole,ite->path() + "/"  +  ite->fileName());



如何使用放到item中的数据呢,定位到listwidget的当前行,然后使用data取出数据,如下:
QString MusicPath = ui->listWidget_localmusic->currentItem()-
>data(Qt::UserRole).toString();

问题记录10:QT中对于一个音乐路径,怎样按某个特定的字符分成的所有段,全部放到一个list里面

//按照==分割,将分割的所有段,放到linelist列表中
QStringList linelist = line.split("=");

//访问这个列表使用数组下标的方式来进行访问。
QString love = linelist[1];

问题记录10:在主界面类中将其他自定义界面类作为主界面的成员变量,这个就叫做组合,维护一个该自定义界面类的指针,就可以动态的管理这个界面了,也就可以不断的更新这个对象了。

如何使用 infoBar 对象:

  1. 在主界面类中声明 infoBar 对象

    musicinfobar *infoBar;
    
  2. 在构造函数或初始化阶段创建 infoBar 对象

    // 假设在构造函数或初始化阶段创建 musicinfobar 对象
    infoBar = new musicinfobar(/* 传递相应的参数 */);
    verticalLayout->addWidget(infoBar);
    
  3. 根据需要更新 infoBar 对象的内容

    // 在槽函数或其他需要的地方,根据用户操作或其他条件更新 infoBar 对象的内容
    void MainWindow::onListItemClicked(QListWidgetItem *item) {
        // 可以根据点击的项更新 infoBar 对象的内容
        int index = listWidget->row(item);
        infoBar->updateMusicInfo(/* 根据 index 更新音乐信息 */);
    }
    

注意事项:

内存管理:你需要确保在适当的时候释放 infoBar 对象的内存,通常在主界面类的析构函数中释放:

MainWindow::~MainWindow() {
    delete infoBar;
}
  • 这样可以避免内存泄漏。

  • 对象的生命周期infoBar 对象的生命周期与主界面类对象的生命周期相同,因此它会在主界面类对象销毁时自动释放。

  • 更新内容:使用 infoBar 对象时,可以直接调用它的方法来更新显示的内容,而无需每次重新创建对象。

通过以上方法,你可以在主界面中维护一个 musicinfobar 对象,并利用它来实现在 QVBoxLayout 中动态显示和更新音乐信息的功能。

问题记录11:如何将一个把一张图片,设置到一个按钮上面

QString imagePath = "/path/to/poster.png";  // 替换为你的海报文件路径
QPixmap posterPixmap(imagePath);

//示例
QPixmap pix(path);
ui->pushButton_touxiang->setIcon(pix);
ui->pushButton_touxiang->setIconSize(QSize(50, 50));  // 设置图标大小

问题记录12:QT中的绘图事件paintEvent,怎么使用

作用:

  • paintEvent 用于绘制窗口部件的内容,例如绘制文本、图形、图像等。
  • 当窗口部件的内容需要更新或者需要重新绘制时,Qt 会自动触发 paintEvent 函数来执行绘制操作。

调用时机:

  • paintEvent 函数在窗口部件第一次显示、大小变化、窗口内容需要更新时等情况下被自动调用。
  • 开发者也可以手动调用 QWidget::update() 函数来触发 paintEvent,以实现手动刷新界面。

问题记录13:在使用QT的C/S网路通信时,始终连接不上

遇到这个问题时,因为所连接的无线网,科学上网也开着的,所以就一直连接不成功,这个在连接的时候一定的要关闭才行。

问题记录14:怎样在QT中创建一个数据呢?

答案是,一般情况下,我们不需要在Qt上创建数据,我们可以在QT上使用MySQL服务器型数据库,因为,MySQL数据是服务器型数据库,既然是服务器型,就要部署在远端,远端的操作系统一般是Linux系统,所以,我们一般是在Linux上创建数据库,然后在Qt中使用它。

问题记录15:在Linux上使用MySQL数据库的全流程

1. 安装 MySQL 服务器

sudo apt update  # 更新包列表(仅适用于Debian/Ubuntu)
sudo apt install mysql-server  # 安装MySQL服务器

2. 启动 MySQL 服务

sudo systemctl status mysql  # 检查MySQL服务状态
sudo systemctl start mysql   # 启动MySQL服务
sudo systemctl enable mysql  # 设置MySQL服务开机自启(可选)

3. 连接到 MySQL 数据库

mysql -u 用户名 -p

4. 创建数据库

CREATE DATABASE IF NOT EXISTS dbname;

5. 创建用户并授权(可选)

CREATE USER '新用户名'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON dbname.* TO '新用户名'@'localhost';
FLUSH PRIVILEGES;

6. 执行基本操作

USE dbname;  -- 切换到你创建的数据库

CREATE TABLE 表名 (
    列名1 数据类型,
    列名2 数据类型,
    ...
);

7. 断开连接和关闭服务

quit;  -- 退出MySQL命令行客户端

sudo systemctl stop mysql  # 停止MySQL服务

问题记录16:怎样进行大文件传输,如发送.mp3文件,怎么发送。

问题记录17:在Qt上创建MySQL的连接对象,进行连接的时候,连接不上远端MySQL服务器问题。

//使用Qt只能使用已经创建好的动态库来使用,因为Qt没有加载指定的数据库驱动程序   
//所以要在服务器上创建好数据,写好接口,然后制作成动态库,最后将动态库添加到.exe可执行文件所在文件夹下。

问题记录18: 怎样将utf-8编码转为GB2312中文。

由于notepad++中不可截图这里详细说明:首先转为ANSI编码,然后使用找到编码字符集,在编码字符集中找到中文,然后选择GB2312。

问题记录19:如通过listWidget中的当前行的行号,拿到item的指针 ListWidget*item 指针 。

//拿到当前行
int currentRow = ui->listWidget_localmusic->currentRow();

//通过listwidget的行号,拿到它的*item指针
QListWidgetItem* item = ui->listWidget_localmusic->item(upRow);

问题记录20:listWidget的信号中QListWidget::clicked信号没有返回值

QListWidget::clicked信号,无返回值。

QListWidget::ItemClicked信号有返回值,返回值为QListWidgetItem*类型的

问题记录21 : comboBoxQt中可以下拉选择的控件。

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

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

相关文章

capl代码写法

CAPL是一种专门用于构建通信系统测试脚本的编程语言&#xff0c;全称为"Communication Access Programming.Language"。 CAPL是一种类C语言的解释性脚本语言&#xff0c;常用于CAN和LIN总线等通信系统的开发和测试中。 CAPL提供了丰富的库函数和API&#xff0c;可以用…

【Spring Cloud】Sleuth +Zinkin 实现链路追踪并持久化的解决方案

文章目录 前言链路追踪介绍Sleuth入门Sleuth介绍TraceSpanAnnotation Sleuth入门1、引入依赖2、修改配置文件3、网关路由配置4、演示 Zipkin的集成ZipKin介绍ZipKin服务端安装Zipkin客户端集成1、添加依赖2、添加配置3、访问微服务4、演示 Zipkin数据持久化使用mysql实现数据持…

vue3.0学习--创建项目,基于vite创建

vite 官网地址&#xff1a;https://cn.vitejs.dev/guide/ 1&#xff0c;执行创建命令 npm create vitelatest 2, cd my3d ---- my3d 是创建的项目名字 3&#xff0c;npm install ---- 安装需要的插件包 4&#xff0c;npm run format ---- 通常用于代码格式化 5, npm…

【Docker】Docker 的背景

一、容器技术发展史 1、Jail 时代 容器不是一个新概念或者新技术&#xff0c;很早就有了&#xff0c;只是近几年遇到了云计算&#xff0c;整个技术被彻底引爆了。 &#xff08;1&#xff09;1979 年贝尔实验室发明 chroot chroot 系统调用是在 1979 年开发第 7 版 Unix 期间…

Java多重循环控制,break,continue,return

目录 1.多重循环控制 执行步骤分析 案例演示 2.跳转控制语句-break 基本介绍 基本语法 示意图 注意事项和细节说明 练习题 3.跳转控制语句-continue 基本介绍 基本语法 示意图 细节案例分析和说明 4.跳转控制语句-return 介绍 1.多重循环控制 执行步骤分析…

django基于大数据的电影推荐系统-计算机毕业设计源码71246

目 录 摘 要 1 绪论 1.1 选题背景与意义 1.2研究现状 1.3研究内容 1.4 开发环境 1.5论文结构与章节安排 2 相关理论和技术 2.1 协同过滤算法 2.2 B/S体系结构介绍 2.3 Python爬虫技术 2.4 Django框架介绍 2.5 MySQL数据库 3 电影推荐系统系统分析 3.1 可行性分析…

微信小程序审核的一些总结记录

1、文字ocr识别工具&#xff0c;识别ocr文字&#xff0c;显示出文字 这么简单的东西&#xff0c;说是“涉及提供图片/音频/制作、剪辑服务”&#xff0c;这个工具代码也就下图几行&#xff0c;这是哪门子的图片编辑&#xff0c;别管它&#xff0c;直接重新提交审核。 2、个人不…

营销人看巴黎奥运会,看到了什么?

不同的人眼中的巴黎奥运会是不一样的&#xff1a;环保人士关注奥运场馆的绿色设计&#xff0c;以及赛事期间对可再生能源的利用&#xff1b;旅游博主用镜头捕捉巴黎奥运会每一个精彩瞬间&#xff1b;社会学家在巴黎奥运会看到多元文化的交流与融合…… 那么营销人在巴黎奥运会…

基于IDEA+MySQL+Springboot开发的医药进销存系统

基于IDEAMySQLSpringboot开发的医药进销存系统 项目介绍&#x1f481;&#x1f3fb; 1.创建数据库tedu_DIEMS&#xff0c;并导入数据库文件 2.导入项目&#xff0c;import-maven 3.修改application.properties的数据库IP地址、用户名和密码&#xff0c;改为自己的信息 4.找到Di…

嵌入式学习第11天——C语言选择结构

2024年7月29日 第11天 选择&#xff08;分支&#xff09;结构 分支结构&#xff1a;又被称为选择结构 概念 选择结构&#xff1a;根据条件成立与否&#xff0c;选择相应的操作。 条件构建 关系表达式&#xff1a;含有关系运算符的表达式&#xff08;>,<,>,<,!…

Oracle大师Roger Cornejo的推荐:使用ASH诊断Oracle解析故障

这篇文章被Oracle大师Roger Cornejo在X平台上推荐&#xff08;见下图&#xff09;&#xff0c;英文原文在&#xff1a; Diagnosing Parsing Issue with ASH 解析&#xff0c;尤其是硬解析&#xff0c;是非生产性操作&#xff0c;会消耗大量系统资源&#xff0c;导致库缓存争用…

文档数据库--MongoDB

文章目录 MongoDB介绍主要用途和特点对比关系型数据库和关系型数据库最大的不同什么时候使用MongoDBMongoDB数据结构MongoDB参考资料 MongoDB部署和访问二进制安装脚本安装MongoDB后台管理shellmongodb数据库命令mongo的helpdb.mycoll.help() mongosh的helpshow dbsuse dbnamem…

JAVA里的多线程综合练习题

练习1 package lx1;/*一共有1000张电影票,可以在两个窗口领取,假设每次领取的时间为3000毫秒, 要求:请用多线程模拟卖票过程并打印剩余电影票的数量*/ public class MyThread extends Thread {static int ticket 1000;//多个线程对象共享同一个电影票//第一种方式实现多线程&…

生成式:PolyGen: An Autoregressive Generative Model of 3D Meshes【附件】

论文:PolyGen: An Autoregressive Generative Model of 3D Meshes OBJ坐标变换: # Transpose so that z-axis is vertical.vertices = vertices[:, [2, 0, 1]]变换前: 对应数据:

springboot 微信消息推送 springboot sse推送

目录 一、springboot 微信消息推送 springboot sse推送 1、在 Spring 框架中实现 2、传统的 Servlet 中实现 一、springboot 微信消息推送 springboot sse推送 关于 SSE SSE 全程 Server Send Event&#xff0c;是 HTTP 协议中的一种&#xff0c;Content-Type 为 text/event…

MySQL存储引擎MyISAM和InnoDB

1.1MySQL存储引擎 1.1.1概述 1、什么是存储引擎 MySQL中的数据用各种不同的技术存储在文件&#xff08;或内存&#xff09;中。这些技术中的每一种都使用不同的存储机制、索引技巧、锁定水平并且提供广泛的、不同的功能和能力&#xff1b;通过选择不同的技术&#xff0c;能够…

JavaScript - 如何安装和配置Yarn包管理器

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有疑问和建议&#xff0c;请私信或评论留言&#xff01; 前言 Yarn是一个快速…

Langchain--如何使用大模型 2.0

【&#x1f34a;易编橙终身成长社群&#x1f34a;】 大家好&#xff0c;我是小森( &#xfe61;ˆoˆ&#xfe61; ) &#xff01; 易编橙终身成长社群创始团队嘉宾&#xff0c;橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官、CSDN人工智能领域优质创作者 。 Langch…

集合竞价逐笔数据验证,level2行情接口验证

最近做集合竞价的策略&#xff0c;用的level2数据。集合竞价阶段推送数据量很大&#xff0c;但是不确定有没有因为网络原因的数据纰漏&#xff0c;所以需要验证一下。 把今天所有的数据记录了日志&#xff0c;其中筛选了09:25集合竞价的推送&#xff1a; grep 2024/07/29 09:2…

Linux服务器安装Zabbix7.0客户端实战记录和问题记录

1、获取最新的Zabbix客户端包&#xff0c;不同的linux的系统选择不同的安装包 阿里云镜像站 按照一下的格式惊醒编辑替换自己的安装包 openEuler&#xff1a;rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-4.el9.noarch.rpm?sp…