_S_Q
个人简介
展开
-
Qt5 C++ QMap使用总结
该函数会按照键的升序排列来收集所有的值。如果一个键关联了多个值(在某些特殊的多值映射场景下),那么这个键对应的所有值都会被包含在返回的列表中,而不仅仅是最近插入的那个值。类的一个成员函数,其作用是返回一个包含。函数(用于根据键获取对应的值)。此外,文档还提到了可以参考。原创 2025-03-05 10:14:57 · 520 阅读 · 0 评论 -
如何在C++ QT 程序中集成cef3开源浏览器组件去显示网页?
通过上述步骤,可以在Qt应用中集成CEF3浏览器组件。正确配置CEF3的库和资源文件。使用获取原生窗口句柄。通过定时器驱动CEF3消息循环。处理多进程架构。如果需要更复杂的交互(如JavaScript调用C++函数),需进一步实现和接口。原创 2025-02-07 16:41:10 · 843 阅读 · 0 评论 -
Qt C++ 调everything SDK代码分享
Everything是voidtools开发的一款文件搜索工具,官网描述为“基于名称实时定位文件和目录(Locate files and folders by name instantly)”。它体积小巧,界面简洁易用,快速建立索引,快速搜索,同时占用极低的系统资源,实时跟踪文件变化,并且还可以通过http或ftp形式分享搜索。在搜索框输入文字,它就会只显示过滤后的文件和目录。Everything搜索只基于文件和文件夹的名称,所以它创建数据库很快。原创 2024-12-23 09:37:08 · 225 阅读 · 0 评论 -
Qt 5 中的 QTextStream 使用指南
QTextStream 是 Qt 框架中用于处理文本数据的类。它提供了方便的接口来读写文本文件或字符串,支持多种编码格式,并且可以与 QIODevice 类(如 QFile、QTcpSocket 等)结合使用。本文将介绍如何在 Qt 5.15.2 中使用 QTextStream 进行基本的文件读写操作。原创 2024-12-02 09:30:12 · 727 阅读 · 0 评论 -
C++ STL 常见使用详解
容器(Containers):用来存储和管理数据的集合。迭代器(Iterators):用于遍历容器中的元素。算法(Algorithms):一组用于操作容器中数据的通用函数。函数对象(Function Objects):类似于函数的对象,用于自定义算法的行为。C++ 标准模板库(STL)提供了一套强大而灵活的工具,用于处理各种数据结构和算法。通过掌握 STL 中的容器、迭代器、算法和函数对象,开发者可以编写出高效且易于维护的 C++ 程序。希望本文对你理解和使用 STL 有所帮助。原创 2024-07-08 11:45:49 · 1147 阅读 · 0 评论 -
使用 FFmpeg 处理视频:简介、常用命令及在 C++ 中调用 FFmpeg
FFmpeg 是一个开源的跨平台音视频处理工具,它提供了丰富的功能和命令行工具,可以用于处理、转换和流处理各种音视频格式。本文将介绍 FFmpeg 的基本概念、常用命令及如何在 C++ 中调用 FFmpeg 处理视频。FFmpeg 是一个集成了音视频编解码库、格式转换库等多种库的跨平台开源项目。它提供了命令行工具和库文件,可以在不同的操作系统上进行音视频的采集、编码、解码、转码、流处理等操作。本文介绍了 FFmpeg 的基本概念、常用命令及如何在 C++ 中调用 FFmpeg 处理视频。原创 2024-07-08 15:32:44 · 1359 阅读 · 0 评论 -
Qt5.15 基于QTableView ,QItemDelegate自绘,实现一个树节点控件,支持打开关闭树节点
为了实现自定义的绘制和节点展开/折叠的功能,我们需要继承。原创 2024-10-10 18:26:17 · 337 阅读 · 0 评论 -
Qt C++,Link custom data to the QCustomPlot data
【代码】Qt C++,Link custom data to the QCustomPlot data。原创 2024-11-06 09:28:17 · 691 阅读 · 0 评论 -
Qt5.15 C++ 计算2个ip是否是同一网段
在网络通信中,判断两个 IP 地址是否属于同一网段通常涉及将 IP 地址与子网掩码进行“与”操作(bitwise AND),再比较结果是否相同。:将两个 IP 地址与同一子网掩码做按位与操作,得到的网络地址是该 IP 所在的网络。对两个 IP 地址进行此操作,如果结果相同,则说明它们属于同一网段。子网掩码也是一个 32 位的二进制数,用来指定哪些位用于网络标识,哪些位用于主机标识(例如。在这个例子中,这两个 IP 地址会被判断为同一网段,因为在按位与操作后,它们的网络地址都是。原创 2024-10-10 16:58:08 · 317 阅读 · 0 评论 -
C++, Qt 5.15, QCustomplot应用案例(一)
这个方案中,随着用户拖动X轴的范围,程序将自动从SQLite数据库中加载对应时间范围内的温度数据并在图表上显示。通过这种方式,数据可以实时显示,且避免了加载大量数据带来的性能问题。原创 2024-08-16 08:42:07 · 64 阅读 · 0 评论 -
在Ubuntu 18.04上编译Qt 4.8.7
注意:这些步骤提供了一个基本的编译过程,你可能需要根据你的具体需求调整配置选项。如果你的系统中已经有其他版本的Qt,你可能需要使用qmake的-qt-libdir和-qt-plugindir选项来指定安装路径。在Ubuntu 18.04上编译Qt 4.8.7,你需要安装必要的依赖并下载Qt 4.8.7的源代码。原创 2024-10-15 09:06:12 · 179 阅读 · 0 评论 -
QStandardItemModel 遍历
嵌套循环遍历模型的每个元素。递归遍历用于嵌套的树形数据结构。遍历使用索引访问每项的数据。原创 2024-11-04 10:15:28 · 237 阅读 · 0 评论 -
在 Ubuntu 18.04 上编译 Qt 5.6.3 仅限 LGPL 2.1 许可模块
通过上述步骤,你可以在 Ubuntu 18.04 上编译并安装 Qt 5.6.3 仅限 LGPL 2.1 许可模块。原创 2024-10-16 10:58:22 · 150 阅读 · 0 评论 -
查证 Qt 5.6.3 的哪些模块是基于 LGPL v2.1 许可
大部分 Qt 的核心模块(如 Qt Core、Qt GUI、Qt Widgets 等)都使用LGPL v2.1。新的模块和一些功能性模块(如 Qt WebEngine、Qt Charts 等)可能使用LGPL v3.0或商业许可。可以通过查看 Qt 源代码中的LICENSE文件,或者通过官方许可页面获取模块的具体许可类型。如果你需要只使用 LGPL v2.1 的模块,建议重点使用核心模块,并在配置编译时跳过那些不符合 LGPL v2.1 许可的模块。原创 2024-10-16 11:14:42 · 279 阅读 · 0 评论 -
Qt C++调 C++线性代数库Eigen
简而言之,这段代码创建了两个大小相同的向量,一个包含了等间距的数值,另一个初始化为空,并且都适合进行基于这两个向量的线性代数计算,如插值、回归等操作。Eigen是一个高效的矩阵和向量计算库,非常适合处理科学计算和数值分析任务。向量包含1000个等间距的元素,范围从-1到1(包括-1和1)。总结来说,这段代码是为了处理数据并准备将其展示在可视化环境中,如Qt应用中的图表上。定义了两个一维向量(VectorXd),它们都是Eigen库中的动态数组类型。向量的长度,即它所含元素的数量,这将用于后续的操作中。原创 2024-11-06 13:52:56 · 200 阅读 · 0 评论 -
QObject: Cannot create children for a parent that is in a different thread
【代码】QObject: Cannot create children for a parent that is in a different thread。原创 2024-10-16 17:08:40 · 246 阅读 · 0 评论 -
VS2019 IDE,AddressSanitizer,检测C++代码内存问题
【代码】VS2019 IDE,AddressSanitizer,检测C++代码内存问题。原创 2024-10-16 17:07:08 · 396 阅读 · 0 评论 -
内存分配和释放操作符来增加内存申请和释放时的日志打印
如果想在 Qt 项目中使用类似的功能,并且希望通过宏更灵活地启用或禁用日志,可以创建一个简单的宏来进行内存分配和释放的调试。return ptr;return ptr;if(!return ptr;if(!return ptr;return ptr;if(!return ptr;if(!return ptr;原创 2024-10-16 16:35:32 · 79 阅读 · 0 评论 -
Ubuntu编译fftw3
编译 FFTW 3.3.10 需要以下几个步骤,包括安装依赖、下载源码、配置编译环境,并最终进行编译与安装。如果输出中有 FFTW 的共享库信息,则说明安装成功。Ubuntu 20 默认安装的 GCC 版本可能较低,因此需要手动安装。参数会根据系统 CPU 核心数量并行编译,提高编译速度。这样,编译其他依赖 FFTW 的项目时,以及编译 FFTW 所需的工具和库。你可以通过以下命令切换默认编译器为。从 FFTW 官方网站或使用。可以正确找到 FFTW 库。链接 FFTW 库,原创 2024-09-30 10:44:04 · 1196 阅读 · 0 评论 -
C++实现一个简单的String类
拷贝构造函数是C++中的一种特殊构造函数,用于通过已有的对象来初始化新创建的对象。对于内部有资源的类,比如智能指针、在栈上的内存、文件、网络端口、寄存器等,合适的移动构造函数更加高效甚至是必须的。创建类的对象的时候,编译系统需要对象分配内存空间,完成数据成员的初始化工作并请求其他资源,此时,编译系统自动调用构造函数来完成这些工作。在对象被销毁时,系统会自动调用一次的特殊的成员函数,主要是用于释放资源、释放内存的清理工作。因此,构造函数是在创建类的对象时使用,它的核心作用是初始化对象的数据成员和分配内存。原创 2024-09-24 17:51:37 · 121 阅读 · 0 评论 -
Qt C++,QByteArray读取一个超过2GB的文件,写一类封装一下
类提供了类似QByteArray的接口,隐藏了文件分块处理的细节。调用者可以像使用QByteArray一样访问超过 2GB 的文件,而不用关心文件内部是如何按块读取和管理的。这种设计有效避免了内存限制问题,并且保持了接口的简洁性。原创 2024-09-18 17:12:34 · 243 阅读 · 0 评论 -
Qt C++ Udp相关知识学习(一)
(UDP Broadcast)是通过用户数据报协议(UDP)将消息发送到网络中所有设备的一种通信方式。假设你有一台设备 A 发送消息到另一台设备 B,设备 A 的应用程序通过 UDP 协议直接将消息发送到设备 B 的 IP 地址(例如。)是指使用用户数据报协议(UDP)通过网络发送消息的过程,消息的接收者是单个特定的目标设备或IP地址。),局域网中的所有设备都会接收到这个消息,而不需要设备 A 逐一发送给每个设备。如果设备 A 使用 UDP 广播消息,它可以将消息发送到局域网的广播地址(如。原创 2024-09-09 15:23:21 · 443 阅读 · 0 评论 -
gitlab 启动/关闭/启用开机启动/禁用开机启动
Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。原创 2024-09-07 11:08:39 · 1178 阅读 · 1 评论 -
Git使用总结
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。如图1所示是经典的git开发过程。Git的功能特性:从一般开发者的角度来看,git有以下功能:1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。2、在自己的机器上根据不同的开发目的,创建分支,修改代码。3、在单机上自己创建的分支上提交代码。4、在单机上合并分支。5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。原创 2022-11-07 11:45:56 · 136 阅读 · 0 评论 -
Chromium和cef的区别和联系
Chromium是一个由Google主导开发的网页浏览器。以BSD许可证等多重自由版权发行并开放源代码。Chromium的开发可能早自2006年即开始,设计思想基于简单、高速、稳定、安全等理念,在架构上使用了Apple发展出来的WebKit排版引擎、Safari的部份源代码与Firefox的成果,并采用Google独家开发出的V8引擎,以提升解译JavaScript的效率,而且设计了“沙盒”、“黑名单”、“无痕浏览”等功能,来实现稳定与安全的网页浏览环境。原创 2022-11-07 11:50:19 · 1094 阅读 · 0 评论 -
C#使用NPOI进行Excel和Word文件处理(一)
NPOI 是一个非常流行的用于在 .NET 环境中操作 Office 文件(包括 Excel 文件)的开源库。它的功能非常强大,但性能和文件大小问题可能因具体的使用情况和文件内容而有所不同。NPOI 是一个功能强大且广泛使用的库,适合处理大多数 Excel 操作任务。虽然生成的文件可能会稍大,但通过优化可以减少影响。性能通常是可以接受的,但对于非常大的数据集,可能需要进行一些优化。原创 2024-07-31 17:59:44 · 791 阅读 · 0 评论 -
C#使用NPOI进行Excel和Word文件处理(二)
NPOI是一个.NET库,用于读取和写入Microsoft Office格式文件,包括Excel (.xls, .xlsx)和Word (.doc, .docx)。NPOI使开发者可以在不依赖于Office组件的情况下操作Office文件,非常适合在服务器端应用中使用。通过NPOI,你可以轻松地在C#中处理Excel和Word文件,无需依赖Office组件。本文提供的示例代码展示了如何读取和写入这些文件的基本操作。你可以根据自己的需求扩展这些示例,以实现更多功能。原创 2024-08-06 15:11:08 · 1044 阅读 · 0 评论 -
如何使用 Qt C++ 基于 FFmpeg 开发本地视频播放器
在本篇博客中,我们将探讨如何使用 Qt C++ 和 FFmpeg 库来开发一个简单的本地视频播放器。通过将两者结合,我们可以创建一个功能强大的视频播放器。这个播放器利用 FFmpeg 强大的解码功能,支持多种视频格式,并且通过 Qt 的图形界面展示解码后的视频帧。接下来,我们将在 Qt Creator 中创建一个新的 Qt Widgets Application 项目,命名为。确保项目配置正确,选择 Qt 5.x 版本,并创建一个空白的窗口。将下载的文件解压,并将。中,我们创建一个主窗口,包含。原创 2024-08-28 08:53:21 · 583 阅读 · 0 评论 -
Keysight Connection Expert 万用表扫描例子程序
这些示例程序展示了如何使用现代化的行业标准 API 来控制测试和测量设备的基础知识。您一旦掌握了这些基础知识,就可以使用 Command Expert 软件来加速仪器编程。该软件是是德科技的一款免费工具,可用于交互地查找和试用仪器命令。原创 2023-11-16 16:04:32 · 668 阅读 · 0 评论 -
Qt 控件详解:QTreeView 使用指南
虽然 QStandardItemModel 非常方便,但在一些复杂的情况下,我们可能需要自定义数据模型。我们可以通过继承 QAbstractItemModel 来实现自定义数据模型。Q_OBJECTpublic:// 必须实现的方法private:// 用于存储数据的结构// 填充示例数据// 递归删除树节点if (!// 填充示例数据 TreeNode * child1 = new TreeNode {原创 2024-07-26 18:25:06 · 644 阅读 · 0 评论 -
在Qt C++项目中调用7z API实现压缩和解压
通过以上步骤,我们在Qt C++项目中集成了7z库,并实现了基本的压缩和解压功能。尽管这只是一个简单的示例,实际项目中可能需要根据具体需求进行更多的定制和优化。希望这篇博客能够帮助你更好地理解如何在Qt中使用7z API进行文件压缩和解压操作。7z(7-Zip)是一款开源的文件压缩软件,它提供了强大的压缩算法和API。本文将介绍如何在Qt C++项目中使用7z API实现文件的压缩和解压功能。从7-Zip的源码包中提取所需的库文件。7z源码通常包含在一个文件夹中,例如。将7z源码中的头文件复制到项目的。原创 2024-07-12 10:01:59 · 940 阅读 · 0 评论 -
基于 Qt、FFmpeg 和 OpenGL 开发跨平台安卓实时投屏软件 QtScrcpy
QtScrcpy 是一个基于 Qt、FFmpeg 和 OpenGL 的开源项目,旨在实现安卓设备的实时投屏功能。它允许用户通过 USB 连接将安卓设备的屏幕内容实时显示在电脑上,并支持对设备进行控制操作,如点击、滑动等。本文将介绍 QtScrcpy 的项目背景、功能特点以及关键代码解读。}");类继承自,并且使用提供的 OpenGL 函数。在构造函数中初始化 FFmpeg 的注册和网络模块初始化。play。原创 2024-07-08 15:39:04 · 1085 阅读 · 0 评论 -
C++/Qt 信号槽机制详解
在 Qt 中声明信号和槽非常简单。Q_OBJECTpublic:signals:除了使用 Qt 内置的信号和槽外,还可以自定义信号和槽。Qt 的信号和槽机制是一个强大且灵活的事件处理机制,广泛用于对象间通信。通过理解其基本概念、工作原理和高级应用,可以更好地利用 Qt 进行高效的应用程序开发。希望本文对你理解和使用 Qt 的信号和槽机制有所帮助。如果你有任何问题或建议,欢迎在评论区留言交流。原创 2024-07-08 13:58:41 · 522 阅读 · 0 评论 -
Qt QCustomPlot 图形库详解及使用
QCustomPlot 是一个开源的 Qt C++ 库,专门用于创建数据图表。易于集成到 Qt 项目中。支持多种图表类型,如折线图、散点图、条形图等。提供丰富的交互功能,如缩放、平移、选择和拖动。高度可定制,支持图形的各种样式设置。// 添加第一条曲线i < 101;++i) {// 设置曲线颜色// 添加第二条曲线i < 101;++i) {// 设置曲线颜色// 设置散点样式// 添加图例。原创 2024-07-08 13:40:55 · 382 阅读 · 0 评论 -
Qt QChart 图表库详解及使用
Qt Charts 是 Qt 提供的一个附加模块,用于创建和管理各种类型的图表。丰富的图表类型:折线图、柱状图、饼图、散点图等。高度可定制的样式和布局。支持多轴绘图和实时更新。提供交互功能,如缩放、平移和选择。// 创建第一条折线图数据系列// 创建第二条折线图数据系列// 创建图表对象// 自定义坐标轴// 显示图例// 创建图表视图Qt Charts 是一个功能强大的图表库,适用于各种数据可视化需求。原创 2024-07-08 13:43:16 · 637 阅读 · 0 评论 -
Qt Qwt 图表库详解及使用
Qwt 提供了一套用于绘制二维图表的控件,包括曲线图、散点图、柱状图、饼图等。它还提供了一些用于显示和交互的数据控件,如滑块、旋钮和刻度尺。丰富的图表类型支持实时数据更新高度可定制的样式和布局强大的交互功能// 创建第一条折线图数据// 设置曲线颜色// 创建第二条折线图数据// 设置曲线颜色// 添加图例// 设置坐标轴标签Qwt 是一个功能强大的图表库,适用于各种技术应用。原创 2024-07-08 13:45:50 · 881 阅读 · 0 评论 -
使用 Qt 和 ECharts 进行数据可视化
本文介绍了如何在 Qt 应用中使用 ECharts 进行数据可视化,并展示了折线图、散点图和柱状图的示例。通过将 ECharts 与 Qt 集成,可以轻松创建高质量的交互式图表,为用户提供直观的数据展示和分析工具。希望本文对你理解和使用 Qt 和 ECharts 进行数据可视化有所帮助。如果你有任何问题或建议,欢迎在评论区留言交流。原创 2024-07-08 13:49:54 · 1054 阅读 · 0 评论 -
Qt QSettings 使用详解:跨平台的配置管理
QSettings 提供了一种跨平台的方式来存储和检索应用程序的设置。这些设置可以存储在不同类型的存储后端,如 INI 文件、注册表(Windows)或特定目录下的配置文件(Unix 类系统)。QSettings 是 Qt 提供的一个强大而灵活的配置管理类,能够在不同平台上统一管理应用程序设置。无论是在 Windows 上使用注册表,还是在 Linux 和 macOS 上使用配置文件,QSettings 都提供了简洁一致的接口,使得跨平台开发更加便利。原创 2024-07-08 13:35:11 · 461 阅读 · 0 评论 -
Qt:Meta-Object System 详解
Meta-Object System 是 Qt 提供的一种机制,用于在运行时提供关于对象的元信息。QObject 基类:所有使用 Meta-Object System 的类都必须继承自 QObject。Q_OBJECT 宏:类定义中使用该宏,以启用 Meta-Object System 的功能。信号与槽机制:用于对象间通信的机制。元属性(Meta-Property):允许在运行时查询和修改对象属性。元方法(Meta-Method):允许在运行时查询和调用对象的方法。在类定义中使用。原创 2024-07-08 11:56:56 · 208 阅读 · 0 评论 -
Qt 控件:QListView 使用详解
QListView 是 Qt 的视图类之一,专门用于展示列表数据。它与 QAbstractItemModel 及其子类(如 QStringListModel、QStandardItemModel)配合使用,可以方便地显示和管理数据。QListView 使用委托来绘制每一项的内容和处理编辑。我们可以通过继承 QStyledItemDelegate 来创建自定义委托。public:QListView 是 Qt 中一个功能强大的控件,用于展示和管理列表数据。原创 2024-07-08 11:42:18 · 1722 阅读 · 0 评论