当前位置: 首页 > news >正文

介绍10个比较优秀好用的Qt相关的开源库

记录下比较好用的一些开源库

1. Qt中的日志库“log4qt”

log4qt 是一个基于 Apache Log4j 设计理念的 Qt 日志记录库,它为 Qt 应用程序提供了强大而灵活的日志记录功能。Log4j 是 Java 领域广泛使用的日志框架,log4qt 借鉴了其优秀的设计思想,让 Qt 开发者可以方便地在 C++ 代码中实现类似的日志记录机制;log4qt”开源库基本可以满足中小型项目的各种日志需求,特别优点是能很好的嵌入到Qt开发的项目中,自动打印出Qt本身的一些警告或错误,这块其实很有用,往往是一些问题的本源;
可以从 log4qt 的官方 GitHub 仓库(https://github.com/MEONMedical/log4qt)下载最新的源码。解压源码包后,进入源码目录,使用 Qt 的 qmake 和 make 工具进行编译和安装。在项目的 .pro 文件中添加对 log4qt 库的引用。
在应用程序的 main 函数中,需要对 log4qt 进行初始化。以下是一个简单的初始化示例

#include <QCoreApplication>
#include <Log4Qt/Logger>
#include <Log4Qt/BasicConfigurator>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 基本配置,将日志输出到控制台Log4Qt::BasicConfigurator::configure();// 获取根日志记录器Log4Qt::Logger* logger = Log4Qt::Logger::root();// 记录日志logger->debug("Debug message");logger->info("Info message");logger->warn("Warning message");logger->error("Error message");logger->fatal("Fatal message");return a.exec();
}
2. 图表开源库“QCustomPlot”

QCustomPlot是一个基于Qt画图和数据可视化的C++控件。在Qt下的绘图工具有Qwt、QChart和QCustomPlot,在绘制大量数据(10万个点以上)时选择QCustomPlot优势比较明显,可以将XY轴对调,然后形成横向的效果,无论是曲线图还是柱状图,分组图、堆积图等,都支持这个特性。
功能特点:一个用于绘制各种 2D 图表的 Qt 库,支持折线图、柱状图、散点图、饼图等多种图表类型。它具有高度的可定制性,能够自定义图表的外观、坐标轴、标签等。可以方便地添加数据、更新图表,并且支持交互操作,如缩放、平移等。
如下:在 Qt 项目中,使用QCustomPlot可以轻松创建一个简单的折线图

#include "qcustomplot.h"
#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);QCustomPlot *customPlot = new QCustomPlot();// 创建一个折线图customPlot->addGraph();QVector<double> x(101), y(101);for (int i = 0; i < 101; ++i) {x[i] = i / 50.0 - 1;y[i] = x[i] * x[i];}customPlot->graph(0)->setData(x, y);customPlot->rescaleAxes();customPlot->replot();customPlot->show();return a.exec();
}
3. SQLite数据库

功能特点:SQLite 是一个轻量级的嵌入式数据库,它将整个数据库存储在一个单一的文件中,无需单独的服务器进程。Qt 提供了对 SQLite 的原生支持,通过 QSqlDatabase 和 QSqlQuery 等类可以方便地进行数据库操作,如创建表、插入数据、查询数据等。
适用场景:适合开发小型应用程序、嵌入式系统等,对数据库性能要求不是特别高的场景。

#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("test.db");if (db.open()) {QSqlQuery query;query.exec("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)");query.exec("INSERT INTO test (name) VALUES ('John')");query.exec("SELECT * FROM test");while (query.next()) {qDebug() << query.value(0).toInt() << query.value(1).toString();}db.close();}return a.exec();
}
4. QtWebSockets网络库

功能特点:Qt 提供的用于实现 WebSocket 通信的模块,支持客户端和服务器端的开发。WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实时数据传输的场景。
适用场景:常用于开发实时聊天应用、实时监控系统、在线游戏等。
以下是一个简单的 WebSocket 客户端示例

#include <QCoreApplication>
#include <QWebSocket>
#include <QDebug>class WebSocketClient : public QObject {Q_OBJECT
public:WebSocketClient(const QUrl &url, QObject *parent = nullptr) : QObject(parent), m_url(url) {connect(&m_webSocket, &QWebSocket::connected, this, &WebSocketClient::onConnected);connect(&m_webSocket, &QWebSocket::disconnected, this, &WebSocketClient::closed);m_webSocket.open(QUrl(m_url));}private slots:void onConnected() {qDebug() << "Connected to server";m_webSocket.sendTextMessage("Hello, server!");}void closed() {qDebug() << "Disconnected from server";}private:QWebSocket m_webSocket;QUrl m_url;
};#include "main.moc"int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);WebSocketClient client(QUrl("ws://localhost:1234"));return a.exec();
}
5. QML Material 库

QML Material 是一个基于 Qt Quick(QML)实现的 UI 组件库,它遵循 Google 的 Material Design 设计语言。Material Design 是一种由 Google 推出的设计规范,强调使用简洁、直观的界面元素和富有层次感的视觉效果,以提供统一且美观的用户体验。QML Material 库将这些设计理念融入到 Qt 应用程序开发中,使得开发者可以轻松创建出具有现代感和时尚感的用户界面。
在 QML 文件中,导入 QML Material 库,使项目可以使用该库提供的组件,这样QML文件中就可以直接使用 QML Material 提供的组件。
以下是一个简单的示例,展示了如何使用 Material.Button 组件

import QtQuick 2.15
import QtQuick.Window 2.15
import Material 1.0Window {visible: truewidth: 640height: 480title: "QML Material Example"Material.Button {text: "Click me"anchors.centerIn: parentonClicked: {console.log("Button clicked!")}}
}
6. QSingleApplication 库

QSingleApplication 是一个用于确保应用程序在系统中只能有一个实例运行的 Qt 库。在很多实际应用场景中,我们不希望同一个应用程序同时打开多个实例,例如某些配置工具、系统监控程序等,多次打开可能会导致资源冲突、数据不一致等问题。QSingleApplication 库通过使用系统级的锁机制(如共享内存、命名管道等)来检测应用程序是否已经有实例在运行,如果有则将新启动的实例的操作(如命令行参数传递、激活已有实例窗口等)转发给已有实例,从而保证应用程序的单实例运行。
QSingleApplication 使用简单,包含了头文件后,在 main 函数中,使用 QSingleApplication 替代 QApplication 来创建应用程序实例

#include <QDebug>
#include "qsingleapplication.h"int main(int argc, char *argv[])
{QSingleApplication app(argc, argv, true);// 检查是否已经有实例在运行if (app.isRunning()) {// 如果已有实例运行,将新实例的消息(如命令行参数)发送给已有实例app.sendMessage("New instance started with args: " + QStringList(app.arguments()).join(" "));return 0; // 退出新实例}// 这里开始编写你的应用程序主逻辑// 例如创建主窗口等// ...return app.exec();
}
7. QtAdvancedStylesheets工具

QtAdvancedStylesheets 是一个用于增强 Qt 应用程序样式表功能的工具。在 Qt 开发中,样式表(QSS)是一种强大的机制,用于自定义应用程序的外观,而 QtAdvancedStylesheets 在此基础上进行了扩展,提供了更多高级的样式特性和功能,帮助开发者更轻松地创建出美观、独特且富有交互性的用户界面。
丰富的样式特性:支持更多复杂的样式效果,如渐变、阴影、圆角等,能够让界面元素呈现出更加立体和现代的外观。
动态样式更新:允许在运行时动态修改样式,实现一些动画效果或根据用户操作改变界面外观,增强用户交互体验。
自定义选择器:提供了自定义选择器的功能,使得样式规则的应用更加灵活,可以根据特定的条件或属性来选择界面元素进行样式设置。
跨平台兼容性:基于 Qt 框架,继承了 Qt 的跨平台特性,可以在 Windows、Linux、macOS 等多种操作系统上使用。

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include "QtAdvancedStylesheets.h"int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建一个主窗口和一个按钮QWidget window;QPushButton button("Click me", &window);button.move(50, 50);// 加载样式表文件QString styleSheet = QtAdvancedStylesheets::parseStyleSheetFromFile("styles.qss");// 应用样式表到应用程序app.setStyleSheet(styleSheet);window.show();return app.exec();
}

QtAdvancedStylesheets::parseStyleSheetFromFile(“styles.qss”) 函数用于从指定的文件中解析样式表内容。这里的 “styles.qss” 是你自定义的样式表文件,你可以在其中编写 QtAdvancedStylesheets 支持的样式规则。
他还有个巨牛的接口QtAdvancedStylesheets::mergeStyleSheets 函数,用于合并当前样式表和新的样式表,然后将合并后的样式表应用到应用程序,实现样式的动态更新

8. QtWebApp库

QtWebApp 是一个基于 Qt 框架开发的轻量级 Web 应用程序框架,用于快速构建 Web 服务器和 Web 应用。它提供了简单易用的 API,使得开发者能够方便地处理 HTTP 请求、响应,管理会话,以及实现动态网页等功能。该库适用于开发各种类型的 Web 应用,如 Web 服务接口、小型 Web 网站等。

可以从 QtWebApp 的开源仓库(GitHub)下载其源码,将下载的源码文件添加到你的 Qt 项目中。一般需要包含头文件和源文件,并在项目配置文件(如 .pro 文件)中添加相应的源文件路径。
例如使用 QtWebApp 搭建一个简单的 Web 服务器:

#include <QtCore/QCoreApplication>
#include "httplistener.h"
#include "requestmapper.h"// 配置文件
QSettings* settings = new QSettings("config.ini", QSettings::IniFormat, 0);// 主函数
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 创建 HTTP 监听器new HttpListener(settings, new RequestMapper(&a), &a);return a.exec();
}
//请求映射器 RequestMapper
#include "requestmapper.h"
#include "staticfilecontroller.h"
#include "templatecontroller.h"extern QSettings* settings;// 静态文件控制器
StaticFileController* staticFileController = new StaticFileController(settings, &requestMapper);// 模板控制器
TemplateController* templateController = new TemplateController(&requestMapper);RequestMapper::RequestMapper(QObject* parent) : HttpRequestHandler(parent) {// 初始化代码
}void RequestMapper::service(HttpRequest& request, HttpResponse& response) {QByteArray path = request.getPath();// 处理静态文件请求if (path.startsWith("/static")) {staticFileController->service(request, response);} // 处理模板请求else if (path.startsWith("/template")) {templateController->service(request, response);} // 其他请求else {response.setStatus(404, "Not found");response.write("The URL is wrong, no such document.", true);}
}
//模板控制器
#include "templatecontroller.h"
#include "template.h"TemplateController::TemplateController(QObject* parent): HttpRequestHandler(parent) {// 初始化代码
}void TemplateController::service(HttpRequest& request, HttpResponse& response) {// 加载模板文件Template t=templateCache->getTemplate("index",request.getHeader("Accept-Language"));// 设置模板变量t.setVariable("message", "Hello, World!");// 生成 HTML 内容QByteArray html = t.toUtf8();// 设置响应头response.setHeader("Content-Type", "text/html; charset=UTF-8");// 发送响应内容response.write(html, true);
}

再加一个ini配置文件

[listener]
port=8080
minThreads=1
maxThreads=10
cleanupInterval=1000
readTimeout=60000
maxRequestSize=16000
maxMultiPartSize=1000000
9. Qwt库

Qwt库(Qt Widgets for Technical Applications)是一个基于 Qt 框架开发的开源 C++ 类库,专门用于开发技术应用程序中的图表和绘图功能。它提供了一系列丰富的组件和工具,能够帮助开发者快速、高效地创建各种专业级的 2D 图表和绘图界面,广泛应用于科学研究、工程计算、数据监测等领域。
丰富的图表类型:支持多种常见的图表类型,如折线图、柱状图、饼图、散点图、极坐标图等,满足不同场景下的数据可视化需求。
高度可定制性:Qwt 中的每个组件都具有高度的可定制性,开发者可以对图表的外观(如颜色、线条样式、字体等)、坐标轴、刻度、标签等进行细致的设置,以实现个性化的视觉效果。
交互功能:提供了一些交互功能,如鼠标缩放、平移、数据点提示等,增强了用户与图表的交互体验,方便用户对数据进行深入分析。
跨平台兼容性:由于基于 Qt 框架,Qwt 继承了 Qt 的跨平台特性,可以在 Windows、Linux、macOS 等多种操作系统上运行。
可以从 Qwt 的官方网站(http://qwt.sourceforge.net/)下载最新的源码包,解压源码包后,进入源码目录,使用 Qt 的 qmake 和 make 工具进行编译和安装。在需要引入的项目的 .pro 文件中添加对 Qwt 库的引用。
以下简单展示如何使用 Qwt 库创建一个折线图

#include <QApplication>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_legend.h>
#include <qwt_point_data.h>
#include <vector>int main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建一个 QwtPlot 对象QwtPlot plot;plot.setWindowTitle("Simple Qwt Plot");plot.insertLegend(new QwtLegend());// 准备数据std::vector<double> x = {1, 2, 3, 4, 5};std::vector<double> y = {2, 4, 6, 8, 10};QwtPointArrayData data(x.data(), y.data(), static_cast<int>(x.size()));// 创建一个 QwtPlotCurve 对象QwtPlotCurve *curve = new QwtPlotCurve("Line Curve");curve->setData(data);curve->setPen(Qt::blue, 2);  // 设置曲线的颜色和宽度curve->attach(&plot);  // 将曲线附加到 QwtPlot 上// 显示图表plot.show();return a.exec();
}
10.精美控件库qskinny库

qskinny 是一个轻量级、跨平台的 Qt Quick 控件库,它专为创建具有高性能和自定义外观的用户界面而设计。它基于 Qt Quick 技术,提供了一系列丰富的控件,可用于开发各种类型的应用程序,包括嵌入式系统、桌面应用和移动应用等。
qskinny 的设计注重资源的高效利用,它的代码量相对较小,运行时占用的内存和 CPU 资源也较少,非常适合在资源受限的设备上运行。
可以从 qskinny 的官方 GitHub 仓库(https://github.com/Hermann-SW/qskinny)下载最新的源码,解压源码包后,进入源码目录,使用 Qt 的 qmake 和 make 工具进行编译和安装。然后在你要引入的项目的 .pro 文件中添加对 qskinny 库的引用。
简单展示如何在 QML 中使用 qskinny 控件创建一个包含按钮和文本框的界面:

import QtQuick 2.15
import Skinny 1.0ApplicationWindow {visible: truewidth: 640height: 480title: "qskinny Example"SkinnyItem {anchors.fill: parent// 创建一个按钮SkinnyPushButton {text: "Click me"anchors.centerIn: parentonClicked: {textField.text = "Button clicked!"}}// 创建一个文本框SkinnyLineEdit {id: textFieldanchors.top: parent.topanchors.left: parent.leftanchors.margins: 20width: 200}}
}

以上10个Qt相关的开关库,都是比较优秀的开源库。可以与 Qt 结合使用,以扩展其功能。

相关文章:

介绍10个比较优秀好用的Qt相关的开源库

记录下比较好用的一些开源库 1. Qt中的日志库“log4qt” log4qt 是一个基于 Apache Log4j 设计理念的 Qt 日志记录库&#xff0c;它为 Qt 应用程序提供了强大而灵活的日志记录功能。Log4j 是 Java 领域广泛使用的日志框架&#xff0c;log4qt 借鉴了其优秀的设计思想&#xff…...

利用Muduo库实现简单且健壮的Echo服务器

一、muduo网络库主要提供了两个类&#xff1a; TcpServer&#xff1a;用于编写服务器程序 TcpClient&#xff1a;用于编写客户端程序 二、三个重要的链接库&#xff1a; libmuduo_net、libmuduo_base、libpthread 三、muduo库底层就是epoll线程池&#xff0c;其好处是…...

渗透测试之文件包含漏洞 超详细的文件包含漏洞文章

目录 说明 通常分为两种类型&#xff1a; 本地文件包含 典型的攻击方式1&#xff1a; 影响&#xff1a; 典型的攻击方式2&#xff1a; 包含路径解释&#xff1a; 日志包含漏洞&#xff1a; 操作原理 包含漏洞读取文件 文件包含漏洞远程代码执行漏洞: 远程文件包含…...

高性能 :DeepSeek-V3 inference 推理时反量化实现 fp8_cast_bf16

FP8 (8 bits) & FP16 (16 bits) FP8 和 BF16 都是浮点数格式&#xff08;floating-point formats&#xff09;&#xff0c;float通过科学计数法表示数据&#xff0c;float [符号位指数位系数位] FP8 (8 bits)&#xff1a;SEEEMMMMFP16 (16 bits)&#xff1a;SEEEEEMMMMM…...

kakailio官网推荐的安装流程ubuntu 22.04

https://kamailio.org/docs/tutorials/6.0.x/kamailio-install-guide-git/ # 非必须项 wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/kamailio.gpg在/etc/apt/sources.list文件追加以下内容 deb [signed-by/usr/sh…...

能否通过蓝牙建立TCP/IP连接来传输数据

前言&#xff1a; 最近在做一个项目时&#xff0c;产生了一个疑问&#xff1a;能否通过蓝牙建立TCP/IP连接来传输数据 查阅了一些文章&#xff0c;可以得出结论&#xff1a;不行 下面是我截取的两篇个人认可的文章的回答&#xff1a; 文章一&#xff1a; 蓝牙是一种短距离无…...

git基础使用--1--版本控制的基本概念

文章目录 git基础使用--1--版本控制的基本概念1.版本控制的需求背景&#xff0c;即为啥需要版本控制2. 集中式版本控制SVN3. 分布式版本控制 Git4. SVN和Git的比较 git基础使用–1–版本控制的基本概念 1.版本控制的需求背景&#xff0c;即为啥需要版本控制 先说啥叫版本&…...

高端入门:Ollama 本地高效部署DeepSeek模型深度搜索解决方案

目录 一、Ollama 介绍 二、Ollama下载 2.1 官网下载 2.2 GitHub下载 三、模型库 四、Ollmal 使用 4.1 模型运行&#xff08;下载&#xff09; 4.2 模型提问 五、Ollama 常用命令 相关推荐 一、Ollama 介绍 Ollama是一个专为在本地机器上便捷部署和运行大型语言模型&…...

高级java每日一道面试题-2025年01月30日-框架篇[SpringBoot篇]-如何理解 Spring Boot 配置加载顺序 ?

如果有遗漏,评论区告诉我进行补充 面试官: 如何理解 Spring Boot 配置加载顺序 ? 我回答: 在 Java 高级面试中讨论 Spring Boot 配置加载顺序时&#xff0c;理解其机制对于有效管理和调试应用程序配置至关重要。Spring Boot 通过一系列预定义的规则来确定如何加载和覆盖配置…...

代码随想录day06

242.有效的字母异位词 刚学哈希表想着使用unordered_set来实现&#xff0c;结果无法通过&#xff0c;原因是对字母异位词理解有问题&#xff0c;字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语&#xff0c;并使用所有原字母一次。对字母出现的次数有要求&am…...

C#常用744单词

1.visual 可见的 2.studio 工作室 3.dot 点 4.net 网 5.harp 尖端的&#xff0c;锋利的。 6.amework 骨架&#xff0c;构架&#xff0c;框架 7.beta 测试版&#xff0c;试用版 8.XML&#xff08;全称&#xff1a;eXtensible Markup Language&#xff09…...

14.PPT:中国注册税务师协会宣传【26】

目录 NO12 NO3/4/5​ NO678​ 【文本框水平/垂直居中】【文本框内容水平/垂直居中】 NO12 坑&#xff1a;注意❗Word文档的PPt素材.docx的标题大纲是混乱的&#xff0c;虽然他设置了&#xff0c;所以我们需要重新设置 设计→主题视图→幻灯片母版→删除版式插入logo NO3/4…...

Python大数据可视化:基于Python的王者荣耀战队的数据分析系统设计与实现_flask+hadoop+spider

开发语言&#xff1a;Python框架&#xff1a;flaskPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 比赛信息管理 看板展示 系统管理 摘要 本文使用Python与…...

简单3步部署本地国产大模型DeepSeek大模型

简单3步部署本地国产大模型DeepSeek大模型 DeepSeek是最近非常火的开源大模型&#xff0c;国产大模型 DeepSeek 凭借其优异的性能和对硬件资源的友好性&#xff0c;受到了众多开发者的关注。 无奈&#xff0c;在使用时候deepseek总是提示服务器繁忙&#xff0c;请稍后再试。 …...

Redis常见数据类型与编码方式

⭐️前言⭐️ 本小节围绕Redis中常见的数据类型与编码方式展开。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主日常练习代码均已上传GitHu…...

利用matlab寻找矩阵中最大值及其位置

目录 一、问题描述1.1 max函数用法1.2 MATLAB中 : : :的作用1.3 ind2sub函数用法 二、实现方法2.1 方法一&#xff1a;max和find2.2 方法二&#xff1a;max和ind2sub2.3 方法对比 三、参考文献 一、问题描述 matlab中求最大值可使用函数max&#xff0c;对于一维向量&#xff0…...

解锁云电脑爽玩TGA游戏,ToDesk、海马云等多款云电脑游戏横测

作为一名游戏爱好者&#xff0c;我深入研究了云电脑技术在游戏娱乐中的应用。通过对比传统游戏机与云电脑的成本效益&#xff0c;我发现云电脑以其低成本和灵活性脱颖而出。我以自身为例&#xff0c;分析了云电脑如何满足对游戏体验的高要求。在测评中&#xff0c;我选择了ToDe…...

蓝桥杯思维训练(五)

文章目录 子集II1191.K次串联后最大子数组之和 子集II 子集II 思路分析&#xff1a; 求解子集的问题的关键就是&#xff0c;通过递归与回溯&#xff0c;我们就是得确定以某个元素开始的子集&#xff0c;对于这个题目来说&#xff0c;比较麻烦的一点就是&#xff0c;存在重复的…...

kaggle视频行为分析1st and Future - Player Contact Detection

这次比赛的目标是检测美式橄榄球NFL比赛中球员经历的外部接触。您将使用视频和球员追踪数据来识别发生接触的时刻&#xff0c;以帮助提高球员的安全。两种接触&#xff0c;一种是人与人的&#xff0c;另一种是人与地面&#xff0c;不包括脚底和地面的&#xff0c;跟我之前做的这…...

2025 CCF BDCI|“基于TPU平台的OCR模型性能优化”一等奖作品

2024年12月&#xff0c;中国计算机学会在海南博鳌成功举办了第十二届CCF大数据与计算智能大赛&#xff08;简称2024 CCF BDCI&#xff09;。本届比赛的算能赛道吸引了1748名选手报名&#xff0c;经过激烈角逐&#xff0c;北京航空航天大学的“常务副SOTA”团队脱颖而出&#xf…...

结合深度学习、自然语言处理(NLP)与多准则决策的三阶段技术框架,旨在实现从消费者情感分析到个性化决策

针对电商个性化推荐场景的集成机器学习和稳健优化三阶段方案。 第一阶段:在线评论数据处理&#xff0c;利用深度学习和自然语言处理技术进行特征挖掘&#xff0c;进而进行消费者情感分析&#xff0c;得到消费者偏好 在第一阶段&#xff0c;我们主要关注如何通过深度学习和自然语…...

Linux系统安装Nginx详解(适用于CentOS 7)

目录 1. 更新系统包 2. 安装EPEL仓库 3. 安装Nginx 4. 启动Nginx服务 5. 设置Nginx开机自启 6. 检查Nginx状态 7. 配置防火墙 8. 访问Nginx默认页面 9. 配置Nginx&#xff08;可选&#xff09; 10. 重启Nginx 解决步骤 1. 检查系统版本 2. 移除错误的 Nginx 仓库 …...

Qt常用控件 输入类控件

文章目录 1.QLineEdit1.1 常用属性1.2 常用信号1.3 例子1&#xff0c;录入用户信息1.4 例子2&#xff0c;正则验证手机号1.5 例子3&#xff0c;验证输入的密码1.6 例子4&#xff0c;显示密码 2. QTextEdit2.1 常用属性2.2 常用信号2.3 例子1&#xff0c;获取输入框的内容2.4 例…...

[LeetCode]全排列I,II

全排列I 给定一个不含重复数字的整数数组 nums &#xff0c;返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2&#xff1a; 输入&#xff1…...

力扣.270. 最接近的二叉搜索树值(中序遍历思想)

文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的中序遍历) 本题的难点在于可能存在多个答案&#xff0c;并且要返回最小的那一个&#xff0c;为了解决这个问题&#xff0c;我门则要利用上二叉搜索树中序遍历为有序序列的特性&#xff0c;具体到代码中&a…...

Spring 核心技术解析【纯干货版】- VIII:Spring 数据访问模块 Spring-Tx 模块精讲

在企业级开发中&#xff0c;事务管理是保障数据一致性和完整性的重要手段。Spring 作为 Java 生态中广泛使用的框架&#xff0c;其事务管理模块&#xff08;Spring-Tx&#xff09;不仅提供了强大的功能&#xff0c;还极大地简化了开发者在不同技术栈中的事务处理工作。无论是编…...

Vue混入(Mixins)与插件开发深度解析

Vue混入&#xff08;Mixins&#xff09;与插件开发深度解析 Vue混入&#xff08;Mixins&#xff09;与插件开发深度解析1. Vue混入&#xff08;Mixins&#xff09;核心概念1.1 什么是混入1.1.1 本质定义与技术定位1.1.2 混入与相关概念的对比1.1.3 适用场景分析1.1.4 设计哲学与…...

Linux里的容器被OOM killed的两种情况

生产上遇到过几次容器实例被OOM的现象&#xff0c;总结一下LInux OOM的两种触发条件。我的虚拟机是ubuntu 24.0.4版本&#xff0c;分配4G内存&#xff0c;在我的虚拟机上复现这两种case。 一 宿主机物理内存不够 当linux上所有应用程序的内存需求加起来超出了物理内存&#x…...

十一、CentOS Stream 9 安装 Docker

一、Docker 环境安装 1、软件源(仓库)信息 使用如下命令可列出当前系统配置的所有软件源(仓库)信息 # 列出所有软件源 dnf repolist 这表明系统有三个仓库 AppStream 、 BaseOS、Extras-Common 被启用 2、配置软件源镜像 使用如下命令可配置 Docker 软件包下载的镜像地址 …...

【数据结构】链表应用-链表重新排序

重新排序 反转链表预期实现思路解题过程code力扣代码核心代码完整代码 总结 删除链表中间节点代码解惑 链表重新排序题目描述解题思路解题过程复杂度代码力扣代码完整代码 反转链表 预期实现 思路 你选用何种方法解题&#xff1f; 我选用了迭代法来反转链表。这是一种经典且高…...

e2studio开发RA2E1(9)----定时器GPT配置输入捕获

e2studio开发RA2E1.9--定时器GPT配置输入捕获 概述视频教学样品申请硬件准备参考程序源码下载选择计时器时钟源UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Open()函数原型回调函数user_uart_callback ()printf输出重定向到串口定时器输入捕获配…...

qt使用MQTT协议连接阿里云demo

qt使用Mqtt协议连接阿里云。 在配置好qt关于MQTT的环境之后&#xff0c;主要就是根据MQTT的连接参数进行连接即可。 环境配置推荐链接QT编译并部署QtMqtt相关环境跑测demo【超详细教程】_mqtt qt开发教程-CSDN博客 连接核心代码,主要就是根据阿里云的MQTT相关参数进行配置实现连…...

Python分享20个Excel自动化脚本

在数据处理和分析的过程中&#xff0c;Excel文件是我们日常工作中常见的格式。通过Python&#xff0c;我们可以实现对Excel文件的各种自动化操作&#xff0c;提高工作效率。 本文将分享20个实用的Excel自动化脚本&#xff0c;以帮助新手小白更轻松地掌握这些技能。 1. Excel单…...

DNN(深度神经网络)近似 Lyapunov 函数

import torch import torch.nn as nn import torch.optim as optim import matplotlib.pyplot as plt # from torchviz import make_dot import torchviz# 1. Lyapunov 函数近似器&#xff08;MLP 结构&#xff09; class LyapunovNet(nn.Module):def __init__(self, input_dim…...

什么是数据库代理

数据库代理&#xff08;DB Proxy&#xff09;是一种位于应用程序和数据库服务器之间的中间件&#xff0c;充当两者之间的“中间人”。它的核心目标是优化数据库访问、提升性能、增强安全性&#xff0c;并简化数据库架构的复杂度&#xff0c;尤其在高并发、分布式或云环境中应用…...

深入浅出 DeepSeek V2 高效的MoE语言模型

今天&#xff0c;我们来聊聊 DeepSeek V2 高效的 MoE 语言模型&#xff0c;带大家一起深入理解这篇论文的精髓&#xff0c;同时&#xff0c;告诉大家如何将这些概念应用到实际中。 &#x1f31f; 什么是 MoE&#xff1f;——Mixture of Experts&#xff08;专家混合模型&#x…...

【创建模式-单例模式(Singleton Pattern)】

赐萧瑀 实现方案饿汉模式懒汉式&#xff08;非线程安全&#xff09;懒汉模式&#xff08;线程安全&#xff09;双重检查锁定静态内部类 攻击方式序列化攻击反射攻击 枚举(最佳实践)枚举是一种类 唐 李世民 疾风知劲草&#xff0c;板荡识诚臣。 勇夫安识义&#xff0c;智者必怀仁…...

计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

6. 【Vue实战--孢子记账--Web 版开发】-- 主币种设置

从这篇文章开始我们将一起实现孢子记账的功能&#xff0c;这篇文章实现主币种设置。这个功能比较简单&#xff0c;因此我们从这个功能开始做。 一、功能 根据项目前期的需求调研&#xff0c;用户需要在设置主币种的时候查看汇率信息&#xff08;别问为什么有这么个需求&#…...

RabbitMQ深度探索:前置知识

消息中间件&#xff1a; 消息中间件基于队列模式实现异步 / 同步传输数据作用&#xff1a;可以实现支撑高并发、异步解耦、流量削峰、降低耦合 传统的 HTTP 请求存在的缺点&#xff1a; HTTP 请求基于响应的模型&#xff0c;在高并发的情况下&#xff0c;客户端发送大量的请求…...

【文件上传、秒传、分片上传、断点续传、重传】

文章目录 获取文件对象文件上传&#xff08;秒传、分片上传、断点续传、重传&#xff09;优化 获取文件对象 input标签的onchange方法接收到的参数就是用户上传的所有文件 <html lang"en"><head><title>文件上传</title><style>#inp…...

设计模式Python版 组合模式

文章目录 前言一、组合模式二、组合模式实现方式三、组合模式示例四、组合模式在Django中的应用 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式…...

python开发:爬虫示例——GET和POST请求处理

一、Get请求 import json import requests#输入示例&#xff1a;urlhttps://www.baidu.com #RequestHeader:F12标头-请求标头-原始-复制到这&#xff08;忽略第一句&#xff09; def GetRequest(url,RequestHeader""):try:dic{}RequestHeaderList RequestHeader.s…...

【3分钟极速部署】在本地快速部署deepseek

第一步&#xff0c;找到网站&#xff0c;下载&#xff1a; 首先找到Ollama &#xff0c; 根据自己的电脑下载对应的版本 。 我个人用的是Windows 我就先尝试用Windows版本了 &#xff0c;文件不是很大&#xff0c;下载也比较的快 第二部就是安装了 &#xff1a; 安装完成后提示…...

【归属地】批量号码归属地查询按城市高速的分流,基于WPF的解决方案

在现代商业活动中&#xff0c;企业为了提高营销效果和资源利用效率&#xff0c;需要针对不同地区的市场特点开展精准营销。通过批量号码归属地查询并按城市分流&#xff0c;可以为企业的营销决策提供有力支持。 短信营销&#xff1a;一家连锁餐饮企业计划开展促销活动&#xf…...

大数据sql查询速度慢有哪些原因

1.索引问题 可能缺少索引&#xff0c;也有可能是索引不生效 2.连接数配置&#xff1a;连接数过少/连接池比较小 连接数过 3.sql本身有问题&#xff0c;响应比较慢&#xff0c;比如多表 4.数据量比较大 -这种最好采用分表设计 或分批查询 5.缓存池大小 可能是缓存问题&#xff…...

安卓路由与aop 以及 Router-api

安卓路由&#xff08;Android Router&#xff09;和AOP&#xff08;面向切面编程&#xff09;是两个在Android开发中常用的概念。下面我将详细讲解这两个概念及其在Android开发中的应用。 一、安卓路由 安卓路由主要用于在应用程序中管理不同组件之间的导航和通信。它可以简化…...

游戏引擎学习第89天

回顾 由于一直没有渲染器&#xff0c;终于决定开始动手做一个渲染器&#xff0c;虽然开始时并不确定该如何进行&#xff0c;但一旦开始做&#xff0c;发现这其实是正确的决定。因此&#xff0c;接下来可能会花一到两周的时间来编写渲染器&#xff0c;甚至可能更长时间&#xf…...

备战蓝桥杯-洛谷

今天打算写一些洛谷上面的题目 P10904 [蓝桥杯 2024 省 C] 挖矿 https://www.luogu.com.cn/problem/P10904 看了大佬写的题解才写出来这道题的&#xff1a;题解&#xff1a;P10904 [蓝桥杯 2024 省 C] 挖矿 - 洛谷专栏 思路&#xff1a; 这是一道贪心的题目&#xff0c;用…...

动手学图神经网络(9):利用图神经网络进行节点分类 WeightsBiases

利用图神经网络进行节点分类Weights&Biases 引言 在本篇博客中,将深入探讨如何使用图神经网络(GNNs)来完成节点分类任务。以 Cora 数据集为例,该数据集是一个引用网络,节点代表文档,推断每个文档的类别。同时,使用 Weights & Biases(W&B)来跟踪实验过程和…...