自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 Claude Code + DeepSeek 国内使用教程

摘要 本文提供国内使用Claude Code和DeepSeek的详细教程,适用于Windows 10/11+VSCode+Qt/C++开发环境。主要内容包括: 安装Node.js并配置npm国内镜像 安装Claude Code及其路由器(CCR) 注册SiliconFlow获取API Key 配置Router连接DeepSeek模型 正确启动方式:使用ccr code而非claude 常见错误排查:连接问题、认证冲突、模型配置错误等 教程强调通过Router将Claude Code请求路由到国内DeepSe

2026-05-31 14:51:03 297

原创 【Qt】 无边框窗口方案

本文介绍了一种Qt无边框窗口实现方案,通过自定义界面样式替代系统原生标题栏和边框。方案采用四层架构:界面层(自定义标题栏)、调度层(事件过滤器)、数据层(窗口状态管理)和计算层(鼠标位置判断)。核心设计包括:设置无边框标志、CursorPosCalculator算法判断鼠标位置、WidgetData处理窗口拖拽/缩放/光标切换、FramelessHelper调度事件,以及Frame_Title实现自定义标题栏UI。该方案支持完整窗口操作功能,并提供详细的配置API和实现步骤,开发者可快速集成到Qt项目中。

2026-03-24 13:21:47 553

原创 【Qt】UDP跨平台调试工具

UDP调试工具跨平台实现摘要 本项目开发了一个基于Qt框架的UDP网络调试工具,实现了Windows和Linux(Kylin)平台的兼容运行。工具采用宏隔离技术处理平台差异,主要特点包括: 支持服务器/客户端两种工作模式 提供UDP数据收发功能,实时显示通信日志 通过条件编译宏(_WIN32/linux)实现跨平台适配 自动处理不同平台的编码、文件路径等问题 采用Qt信号槽机制简化网络事件处理 关键实现: 服务器模式绑定端口监听 客户端模式主动发送数据 日志系统区分收发记录并支持保存 参数校验确保IP/端口

2026-02-04 17:24:49 984

原创 【Qt】代理(Delegate)的使用

本文介绍了Qt模型/视图架构中的代理(Delegate)机制,用于自定义数据的显示和编辑方式。主要内容包括:代理的基本概念和作用;两种代理类型(自定义显示和自定义编辑器)的实现方法;使用代理的完整步骤,包括创建代理类、初始化设置和清理资源。文章通过复选框代理和组合框代理两个示例,详细展示了如何重写关键方法(如createEditor、paint、setEditorData等)来实现特定功能。最后强调代理在Qt开发中的重要性,能有效增强界面交互性和数据展示灵活性。

2026-01-28 20:51:06 721

原创 QSettings + INI 笔记

本文介绍了使用QSettings操作INI配置文件的方法。主要内容包括:1) 初始化QSettings对象;2) 基础读写操作,通过setValue()写入和value()读取;3) 实用技巧如分组管理、数组存储和配置路径选择;4) 示例展示单例模式封装配置;5) 常用操作如键检查、删除等;6) 注意事项如路径分隔符和编码处理。核心要点是使用QSettings的简单API实现跨平台INI配置管理,适合保存应用设置和用户偏好。

2026-01-27 17:30:18 405

原创 【Qt+QCustomplot】QCustomPlot在Visual Studio中的编译问题

摘要 QCustomPlot在VS中编译常见两类问题:元对象链接错误(LNK2001)和QtPrintSupport缺失。前者因MOC未处理Q_OBJECT宏导致,需将qcustomplot.h属性改为"Qt MOC"或手动编辑项目文件;后者表现为QPrinter错误,需在项目属性添加printsupport模块或链接器添加Qt5PrintSupport.lib。解决方案包括修改文件属性、编辑.vcxproj或重新添加文件,关键要确保MOC运行和依赖模块完整。

2026-01-20 00:50:40 514

原创 【Qt】为什么QList是数组

摘要: 在Qt5/Qt6中,QList并非链表,而是连续存储的顺序容器,与QVector行为高度一致。其名称源于历史遗留问题,实际支持随机访问(O(1))和隐式共享,但中间插入仍需O(n)时间。常见误用包括误当链表使用或多线程无锁操作,后者存在风险。新项目建议优先选择QVector,QList仅用于兼容旧代码或特定场景。核心结论:QList是数组而非链表,需避免基于旧认知的错误用法。

2025-12-23 15:21:26 907

原创 【Qt】生产者-消费者模式学习笔记

本文介绍了生产者-消费者模式及其在项目中的应用。该模式通过缓冲区解耦数据生成和处理,核心组件包括线程安全的数据队列(DataQueue)、生产者(ProducerThread)、消费者(CsvFileSaver)和UI控制器(MainWindow)。

2025-12-14 13:28:22 1027

原创 【Qt】QTimer 学习笔记总结

QTimer学习摘要 QTimer是Qt实现定时任务的核心类,基于事件循环机制工作,适用于周期性任务和延迟执行。核心要点: 工作原理:通过事件循环检测定时触发,需注意线程归属(操作必须在创建线程执行); 基础使用:设置间隔时间、绑定timeout()信号槽,支持单次(setSingleShot)或周期模式; 线程安全:跨线程操作需通过QMetaObject::invokeMethod或信号槽(Qt::QueuedConnection)异步调用; 常见问题:定时失效可能因事件循环未启动、线程归属错误或父对象提

2025-12-05 16:09:45 1166

原创 【Qt】OpenGL渲染框架

本文介绍了一个基于Qt和OpenGL 3.3 Core Profile的轻量级3D渲染框架。该框架实现了坐标轴显示、OBJ模型导入与管理、鼠标交互操作和基础颜色配置功能。文章详细阐述了OpenGL核心流程,包括初始化配置、着色器程序编写、VAO/VBO机制以及渲染循环实现。重点讲解了关键OpenGL API的使用方法,如资源创建、状态绑定和数据上传等操作。框架采用模块化设计,将渲染核心、坐标轴模块、模型数据管理和交互系统分离,展示了现代OpenGL在Qt环境下的基本应用模式。

2025-12-01 13:38:27 1279

原创 【C++】工具: 随机数种子

C++随机数生成的核心在于种子控制:固定种子可复现相同序列(适合测试),动态种子(系统时间或硬件随机设备)则实现更接近真随机的效果。C++11的<random>库提供了完整解决方案,包含随机数引擎(如mt19937)、分布类(如uniform_int_distribution)和种子来源。相比传统rand(),新方法具有更好的随机性、均匀分布和线程安全性。关键注意事项包括引擎单次初始化、避免区间生成偏差以及多线程环境下的种子管理。

2025-11-21 13:40:36 1652

原创 【Qt】配置安卓开发环境

本文详细介绍了Qt配置Android开发环境的关键步骤,包括工具链版本推荐(Qt 5.9.4 + JDK 1.8 + NDK r10e + SDK API 24)、环境路径配置、构建套件设置等核心内容。重点解决了Gradle依赖下载失败、Build Tools版本不兼容等常见问题,提供了修改镜像源和指定构建版本的解决方案。此外还涉及项目级配置、权限管理和许可协议处理等注意事项,最后给出了构建验证流程和环境配置建议,强调版本匹配和路径规范的重要性。

2025-11-16 09:51:07 1320

原创 【Qt】多线程学习笔记

本文介绍了Qt多线程实现的核心组件和使用流程。主要包含QtConcurrent::run创建子线程、QFuture管理任务状态、QMutex保护共享数据等关键组件。使用流程分为初始化、启动任务、后台执行、停止任务和完成回调五个阶段,重点强调了线程安全、跨线程UI更新和终止响应机制。文中还提供了纯代码创建UI的示例,并展示了后台任务的核心逻辑和关键代码片段,包括线程安全进度更新和终止检查的实现方式。

2025-11-14 16:53:24 580

原创 【Qt】大文件数据批量处理

本文提出了一种针对大规模CSV数据文件的流式处理方案,采用延迟加载和按需读取策略解决传统方法的内存瓶颈问题。通过记录行偏移量而非加载全部数据,配合Qt框架的QFile和QTextStream实现高效文件操作,支持多字节编码。核心实现包含预加载索引和定时逐行发送机制,既降低内存占用又保持处理效率,适用于十万级以上的大数据文件处理场景,可方便集成到Qt GUI程序并实时反馈处理进度。

2025-11-07 15:04:24 479

原创 【Qt】大数据量表格刷新优化--只刷新可见区域

本文介绍了Qt大数据量表格的性能优化方法,核心思路是只刷新用户当前可见的行区域。通过获取表格视图的可见区域坐标,计算当前显示的行索引范围,在定时刷新和滚动事件中仅处理这些可见行数据,并批量更新UI。文章详细说明了QTableWidget的实现步骤,包括获取可见行范围、绑定刷新事件和批量更新逻辑。这种优化方法能显著减少无效计算和UI绘制,提升万级数据表格的流畅性,同时适用于多种Qt表格组件。

2025-11-05 14:52:25 703

原创 【Qt】集成QtXlsx库

QtXlsx库为Qt应用提供Excel文件操作支持,可直接创建、读取和编辑.xlsx格式文件。该库采用Qt风格API,轻量易用,无需Office环境且跨平台兼容。集成方法简单:下载源码后,在.pro文件中引入qtxlsx.pri文件即可。核心功能包括写入单元格数据、格式化内容等。使用时需注意路径配置和Qt版本兼容性。该方案无需额外编译安装,是Qt项目中处理Excel的高效解决方案。

2025-10-30 14:10:17 1452

原创 【C++】高精度实时系统使用

摘要:基于Qt与POSIX实时API的高精度定时器实现 针对Qt事件循环和QTimer在实时系统中的定时精度不足问题,提出了一种结合PREEMPT_RT内核、POSIX实时API与Qt的混合解决方案。通过配置实时系统环境(包括内核补丁、优先级权限和CPU性能模式),并封装PreciseTimer类实现:1)使用SCHED_FIFO策略的实时线程;2)内存锁定避免分页延迟;3)clock_gettime纳秒级时间戳。该方案在Ubuntu RT系统实测可达到10ms±50μs的定时精度,相比标准QTimer提升

2025-10-22 18:40:53 520

原创 【乌班图】远程连接(向日葵/ToDesk)显示成功却无桌面的问题解析与解决

本文解析了Linux系统下使用向日葵/ToDesk等远程工具时"连接成功却无桌面"的问题。核心原因是系统默认的Wayland显示协议与远程工具依赖的X11协议不兼容。解决方法是通过修改GDM3配置文件(/etc/gdm3/custom.conf),取消"WaylandEnable=false"行的注释并重启系统,强制系统使用X11协议。操作需管理员权限,注意不同发行版的配置文件路径可能有所差异。该方案适用于Ubuntu等主流Linux系统,能有效恢复远程桌面的正常显示

2025-10-22 18:35:40 3774 2

原创 【Qt】乌班图安装Qt环境

本文详细介绍了在Ubuntu 20.04系统上安装配置Qt 5.12.8开发环境的完整流程。首先通过apt更新系统并安装基础编译工具,然后安装Qt核心库和开发工具。重点说明了如何验证安装结果,包括创建测试项目、运行检查等步骤。针对可能出现的Kit未自动检测问题,提供了系统的排查方案:先检查Qt版本、编译器、调试器三大核心组件,再详细指导如何手动配置Qt版本、编译器、调试器,并最终创建和设置Kit开发套件。通过这套流程,可以确保Qt 5.12.8开发环境正确配置并正常运行。

2025-10-12 18:21:35 1200

原创 【Qcustomplot】QCPCurve和QCPGraph 有什么区别

QCPGraph与QCPCurve核心区别摘要(150字) QCustomPlot中,QCPGraph用于函数图像(y=f(x)),数据按x值自动排序,适合时间序列;QCPCurve则严格按点序连接,适合参数化轨迹(x(t),y(t)),支持自交路径。关键差异:Graph强制x单调,适合温度曲线等;Curve保留原始顺序,适用机器人轨迹/GPS等复杂路径。选择时,函数数据用Graph,需保持点序的轨迹用Curve。典型场景如sin(x)用Graph,螺旋线/回路必须用Curve。

2025-09-06 01:03:57 507

原创 【数据库】数据库查询优化:方法、思路与原则

本文总结了数据库查询优化的核心方法与实践原则。优化方法包括:连接管理上采用连接池复用技术,SQL语句优化中精选字段和提前过滤数据,以及合理使用索引加速查询。优化思路强调减少数据库交互次数,将计算负担转移至数据库,并善用查询分析工具。优化原则提出数据本地化处理、避免过早优化、平衡读写性能及确保线程安全等要点。文章通过具体代码场景展示了这些优化策略的实际应用。

2025-08-19 14:44:03 402

原创 【Qt】 数据库连接池

本文介绍了基于Qt的数据库连接池实现方案,该方案通过连接复用和线程同步机制,有效提升了数据库访问性能。连接池核心功能包括:1) 初始化时预创建连接;2) 通过acquireConnection获取有效连接;3) releaseConnection释放连接回池;4) 关闭所有连接。关键技术点包括QMutex保证线程安全、QWaitCondition实现连接等待机制、QSqlDatabase管理数据库连接,以及单例模式确保全局唯一实例。该方案适用于高并发场景,能显著减少连接创建开销,控制数据库资源占用,同时提供

2025-08-19 14:28:58 865

原创 【Qt】线程池与全局信号实现异步协作

本文介绍了一种利用Qt线程池和全局信号实现异步任务协作的方法。通过Qt线程池(QThreadPool)并发执行任务,使用全局信号(GlobalSignal)跨线程传递结果,配合事件循环(QEventLoop)进行阻塞等待,实现了多任务并行处理与主线程同步收尾。关键点包括:1)使用QRunnable封装任务;2)通过QMutex保证线程安全;3)利用QVariant存储多种类型结果;4)采用单例模式管理全局信号;5)通过事件循环实现主线程等待。该方法有效解决了跨线程通信和同步等待问题,适用于需要并行执行多个耗

2025-08-19 14:27:17 930

原创 【Qt】QCustomPlot 简易配置教程

本文介绍了QCustomPlot库的简易配置方法。主要内容包括:下载QCustomPlot库文件;两种添加方式(直接添加或修改.pro文件);在UI中提升QWidget为QCustomPlot;提供简单绘图示例代码(绘制抛物线);以及常见问题解决方案。帮助用户快速在Qt项目中集成和使用这个轻量级绘图库。

2025-08-10 10:09:38 759

原创 【VS + Qt】VS2022 Qt 开发中 ui_xx.h 文件编辑报错但编译正常的问题解决

摘要:VS2022 Qt开发中ui_xx.h文件出现编辑器报错但编译正常的问题,原因是IntelliSense未包含uic生成文件的路径。解决方法是在C++附加包含目录中添加$(QtVarsOutputDir)uic路径,或切换平台工具集至VS2022(143)。该问题源于IntelliSense与编译器头文件搜索路径不一致,Qt构建系统自动为编译器配置路径,但需要手动为IntelliSense添加uic生成目录才能正确识别ui_xx.h文件。(147字)

2025-08-06 15:08:23 921

原创 【CMake】CMake 与 C++ 协同:条件配置机制及控制台控制实例解析

摘要:CMake与C++协同开发中,通过set定义CMake变量作为构建开关,使用target_compile_definitions条件传递宏到C++代码。C++通过#ifdef判断宏实现条件编译,如控制Windows控制台显示。扩展方案包括configure_file生成配置、跨平台条件编译和功能开关等应用场景,实现灵活的环境适配。这种"CMake配置+代码条件编译"模式是大型项目的常用工程技巧。

2025-07-25 14:26:41 537

原创 【Qt】QProcess启动第三方程序或脚本失败

Qt QProcess启动第三方程序失败的原因及解决方法 主要问题原因: 环境变量缺失 - QProcess默认继承Qt程序环境,可能缺少关键变量(如PATH、DISPLAY等) 工作目录不匹配 - 默认工作目录为Qt程序目录,脚本相对路径解析错误 路径/权限问题 - 路径错误、权限不足或脚本格式错误 依赖缺失 - 第三方程序依赖的系统库或模块未安装 关键解决方法: 环境变量设置: 使用QProcessEnvironment::systemEnvironment()获取系统环境变量 手动添加缺失变量(如DI

2025-07-25 14:12:57 1089

原创 【C++】C++ 和python 通信,使用Json数据格式传输。

这些是Qt网络模块的通用函数,与JSON格式本身无关,它们负责处理底层数据传输。使用JSON时需要这些函数,是因为网络传输只能处理字节流,而JSON需要先转换为字节流才能传输。这种编码/解码过程是所有文本格式(包括JSON)在网络传输中的通用处理方式,并非JSON特有,但JSON作为文本型数据交换格式,必须遵循这一流程。

2025-07-24 15:50:13 614

原创 【C++】通信中字节对齐的问题

字节对齐是网络通信中跨平台/语言交互的基础问题,和struct模块是轻量解决方案,但需警惕编译器差异、类型大小、字节序等隐性风险。对于复杂系统,优先采用序列化框架,以平衡兼容性、可维护性与性能。

2025-07-23 11:51:32 709

原创 【Qt】麒麟系统安装套件

本文介绍了在麒麟系统上安装和配置 Qt 开发环境的步骤。首先通过系统包管理器安装基础编译工具和 Qt 依赖库,然后通过 apt 安装 Qt 基础套件及常用模块。接着详细说明了如何在 Qt Creator 中配置编译器、调试器和 Qt 版本,并创建套件(Kit)。最后验证配置是否正确,确保可正常创建和编译 Qt 项目。该指南适用于快速搭建 Qt 开发环境,支持图形、多媒体等功能开发。

2025-07-16 13:03:32 1638

原创 【Qt+error】error: use of undeclared identifier ‘MainWindow

麒麟系统Qt报MainWindow未声明错误但不影响运行,可通过禁用clangcodemodel插件解决。该插件负责代码分析但可能不适配麒麟系统导致误报,禁用后Qt Creator会使用更稳定的默认代码模型,正确识别类声明而不影响编译运行。

2025-07-16 13:01:37 878 1

原创 【系统】虚拟机文件共享

摘要:在VMware虚拟机中挂载共享文件夹需先确认设置名称(如"gx"),创建挂载目录后执行挂载命令。挂载完成后可验证并设置开机自动挂载,需注意共享文件夹名称大小写需完全匹配。包括创建目录、执行挂载、验证结果及设置自动挂载的详细步骤说明。

2025-07-16 12:59:18 478

原创 【SVN】设置忽略规则

摘要:本文介绍了如何设置SVN忽略规则仅跟踪.cpp和.h文件。通过在项目根目录创建.svnignore文件并配置忽略规则,使用PowerShell递归设置svn:ignore属性。重点分析了已跟踪文件无法自动忽略的问题原因,并提供了解决方案:1)清理已跟踪的非代码文件;2)强制重新应用忽略规则。最后强调要提交属性变更以确保规则生效。该方法适用于需要严格控制版本控制文件类型的情况。

2025-07-15 17:14:21 725

原创 【Qt】 设计模式

本文介绍了Qt开发中常用的设计模式及其应用场景。MVC/MVVM模式用于数据与界面分离,单例模式管理全局资源如数据库连接,观察者模式通过信号槽实现对象间通信。工厂模式动态创建数据库连接,命令模式封装数据库操作支持撤销功能,状态模式处理网络连接等状态切换。这些模式结合Qt特性(信号槽、模型视图等),可有效提升代码可维护性和扩展性,适用于数据库操作、通信模块和界面逻辑等场景。

2025-07-15 17:12:34 967

原创 【C++】ExprTk:C++数学表达式解析利器

ExprTk是一个高效的C++数学表达式解析库,支持复杂运算、300+内置函数和变量绑定。其亮点包括:实时解析表达式、支持条件逻辑和自定义函数扩展、提供批量计算优化和详尽的错误处理。

2025-07-15 17:03:36 915

原创 【Qt】插件机制详解:从原理到实战

本文详细解析Qt插件机制的核心原理和实现方法。Qt插件基于接口的动态加载技术,通过标准化接口(IPlugin)、插件元数据声明(Q_INTERFACES/Q_PLUGIN_METADATA)和QPluginLoader动态加载实现主程序与插件的解耦。文章以PluginPro主程序和PluginC插件为例,阐述了从接口定义、插件实现到动态加载的完整流程,并分析了Qt插件机制在松耦合、动态扩展、跨平台等方面的优势。该机制使系统功能可灵活扩展,显著提升可维护性。

2025-07-15 16:27:23 1340

原创 【Git】git clone使用ssh报错 No supported authentication methods available(server sent publickey) 的解决办法

git clone使用ssh报错: No supported authentication methods available(server sent: publickey) 的解决办法。这儿进行修改操作,点击 “ Browser ” 找到在本地安装的 git 服务的根目录 -> Git -> usr -> bin 目录下选中 ssh.exe ,再点击打开即可。

2025-04-02 12:28:03 1743

原创 【VS+Qt】vs2022打开 vs2015项目

最近新装了VisualStudio2022,有一些+ Qt 的老的项目需要运行,但不想再安装VS2015。参照大佬的一些方法,可行。

2025-04-02 12:20:16 1014

原创 【VS】release版本设置单步调试

配置属性” -> “链接器” -> “调试”,这里的 “生成调试信息” 选项也会对调试信息的生成产生影响。通常,将其设置为 “是 (/DEBUG)” 可以确保链接器生成必要的调试信息。“配置属性” -> “C/C++”(对于 C++ 项目)或 “优化”(对于 C# 项目)中的优化选项设置为 “不优化”。C++ 项目属性 c+±>常规->调试信息格式->

2025-04-02 12:16:23 478

原创 【Qt】Qt 类的继承与内存管理详解:QObject、信号槽与隐式共享

​ 在刚开始开发中,想当然的以为Qt的类都是继承自QObject其实不是。导致有时候写的一个继承自比如QGraphicsRectItem的自定义类,不能使用信号槽,但是发现加了Q_OBJECT宏 但是还是报错;最后发现应该这样写就可以了。,使得它们在赋值和拷贝时效率更高。,不需要显式管理内存。

2025-03-29 20:31:24 1521

C++ExprTk:C++数学表达式解析利器

C++ExprTk:C++数学表达式解析利器

2025-07-15

c++/Qt实现的坦克大战

c++/Qt实现的坦克大战

2023-12-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除