- 博客(251)
- 收藏
- 关注
原创 Windows 系统 Qt 下载、安装与环境配置全教程
Qt 是一款跨平台的 C++ 图形用户界面应用程序开发框架,凭借丰富的控件库、便捷的跨平台特性和强大的 Qt Creator 集成开发环境,成为桌面端、嵌入式端开发的主流选择。本文将从Qt 版本选择官网下载分步安装环境变量配置编译工具验证到第一个 Qt 程序运行,全程手把手教你完成 Windows 系统下 Qt 的全套配置,零基础也能轻松上手!下载:官网在线安装包,注册登录后下载,优先选择 Qt 5.15.2 LTS 版本;
2026-01-30 17:12:55
576
原创 Qt 实战:从零开始,使用 Qt 进行安卓开发
在跨平台开发领域,Qt 凭借「一次编写,多平台编译运行」的优势,成为 C++ 开发者开发安卓应用的优选方案。无需深入学习 Java/Kotlin,即可复用桌面端业务逻辑,大幅降低开发与维护成本。本文摒弃纯理论讲解,全程搭配完整可运行的极简示例,从环境配置到最终打包,带你完整走通开发流程,新手也能快速上手。本文通过完整的极简示例,完整覆盖了 Qt 安卓开发从环境搭建、代码编写、真机调试到打包发布的全流程。该示例无平台兼容问题,可作为你后续复杂项目的基础模板。
2026-01-28 10:24:49
1232
原创 从零开始学 Qt Quick:新手入门全攻略
在跨平台 UI 开发领域,Qt 一直是开发者的优选方案。传统 Qt Widgets 擅长桌面端功能性界面开发,而Qt Quick作为 Qt 主推的现代化 UI 框架,凭借 QML 声明式语法、流畅的动画效果和出色的跨平台适配能力,成为移动设备、嵌入式大屏、车载仪表、智能家居面板等场景的主流开发技术。本文面向 Qt Quick 零基础开发者,从核心概念、环境搭建、基础语法到简单实战,带你快速入门 Qt Quick,搞定现代化跨平台 UI 开发。Qt Quick 是 Qt 框架自Qt 4.7。
2026-01-28 10:11:25
754
原创 Git 从入门到精通:版本管理、分支协作与问题追踪全流程实战
在现代软件开发中,Git已经成为了代码版本管理的事实标准。无论是个人开发还是团队协作,掌握 Git 不仅能让你避免 “删库跑路” 的尴尬,还能极大地提升团队的开发效率。本文将从最基础的安装配置,到核心的分支管理策略(Git Flow),再到结合进行团队协作与 Issue 问题追踪,为您带来一站式的 Git 实战教程。mastermain: 主分支,存放生产环境代码,随时可部署。develop: 开发分支,团队日常开发的集成分支。feature/*: 功能分支,用于开发新需求(如bugfix/*
2026-01-26 16:17:12
1002
原创 PX4 开源飞控深度解析:从架构到二次开发(超详细)
基于 NuttX RTOS,实时性强模块化架构,易于扩展uORB 消息总线,模块解耦强大的多传感器融合能力原生支持避障、精准悬停、自主飞行活跃的社区和丰富的文档如果你需要开发高性能、高可靠性的无人机系统,PX4 是最佳选择。
2026-01-26 11:08:41
878
原创 ArduPilot 开源飞控深度解析:从架构到二次开发(超详细)
跨载体支持(多旋翼、固定翼、车、船、水下机器人)完善的 HAL 层,适配多种硬件清晰的代码结构,适合二次开发强大的社区支持和丰富的文档稳定可靠,适合科研和产品开发。
2026-01-26 11:07:13
280
原创 ArduPilot/PX4 开源飞控架构全解析(附开发实战指引)
ArduPilot(APM)和 PX4 是无人机领域最主流的两大开源飞控固件,覆盖消费级、工业级无人机全场景。能快速定位飞控功能开发的入口,避免 “盲人摸象”;掌握不同飞控的设计理念,选择适配自己场景的方案;高效进行二次开发(如新增传感器适配、自定义飞行模式);排查飞控运行异常、优化飞行性能。本文将从核心架构设计、代码组织、任务调度、模块通信四个维度,深度拆解 ArduPilot 和 PX4 的架构差异,并给出开发实战指引。
2026-01-26 10:37:56
1244
原创 【深度解析】QGroundControl (QGC) 源码结构与完整开发流程(附环境搭建 + 调试技巧)
QGC 采用模块化 + MVVM 架构,核心目录包括src/(C++ 逻辑)、src/qml/(QML 界面)、Vehicle/(无人机载体)、CommLink/(通信),需重点掌握这几个模块的作用;QGC 开发环境搭建的核心是 “匹配 Qt 版本 + 拉取完整子模块”,编译失败多因依赖缺失或版本不匹配;QGC 二次开发遵循 “确认 C++ 数据接口→QML 绑定显示→编译调试→测试验证” 的流程,核心是利用Q_PROPERTY实现 C++ 与 QML 的数据双向绑定。
2026-01-26 10:31:58
796
原创 【QML 入门到实战】从零开始搭建第一个 QML 界面(附完整代码)
QML 是 Qt 框架的声明式界面语言,核心优势是简洁、跨平台、交互性强,适合构建现代化 UI;开发 QML 界面的核心步骤:搭建 Qt 环境 → 新建 Qt Quick 项目 → 编写 main.cpp(加载 QML) → 编写 main.qml(界面布局) → 运行调试;QML 的核心语法是 “元素 + 属性 + 信号槽”,通过锚点布局(anchors)可快速实现元素的位置控制,事件处理通过on+信号名实现。
2026-01-26 10:25:15
1094
原创 Windows 下 C++ 获取系统内存占用百分比(与任务管理器一致)
原汁原味:完全保留你提供的代码逻辑和格式,无任何修改;精准可靠:基于系统原生 API,数值与任务管理器一致;易于使用:代码量少、无依赖,可直接编译运行或集成到其他项目。
2026-01-23 16:13:17
355
原创 Windows 下 C++ 实现 CPU 使用率实时监控(PDH API 版)
本文基于 Windows PDH API 实现了轻量、高效的 CPU 使用率监控功能,代码模块化程度高,可直接复用。核心要点包括:PDH 初始化预热、正确选择计数器路径、数值格式化与异常过滤。该方案相比第三方库更轻量化,相比 WMI 查询更高效,是 Windows 平台 CPU 监控的优选方案。
2026-01-23 14:09:41
1093
原创 一招解决 Windows C/C++ 控制台中文乱码:SetConsoleOutputCP (CP_UTF8)
解决 Windows C/C++ 控制台中文乱码的最优解;进阶:可选设置控制台字体提升显示效果;
2026-01-21 17:58:59
383
原创 C++ 实现【精准可控】内存占用测试工具(指定内存大小,实打实占用物理内存,亲测可用)
在做程序性能验证、硬件资源测试、帧率影响实验(比如验证内存占用量对摄像头 / 图像处理 / 算法推理帧率的影响)时,我们经常需要人为、精准的占用指定大小的内存空间,以此模拟不同的内存负载环境。Windows 自带的内存查看工具仅能观测内存使用情况,无法主动占用内存;专业的内存测试软件功能繁杂、附带多余进程易干扰实验数据,因此手写一个轻量级、无依赖、可精准指定内存占用大小的内存压力测试工具,是做实验验证、课程设计、性能测试的最优解。本文分享的内存占用工具基于C++ 标准库开发,支持。
2026-01-20 11:41:04
608
原创 C++ 实现【精准可控】CPU 压力测试工具(指定占用率 + 多核控制,亲测可用)
在做程序性能验证、硬件负载测试、帧率影响实验(比如验证 CPU 占用率对摄像头 / 图像处理帧率的影响)时,我们经常需要人为、精准的控制 CPU 的占用率和核心使用数,而不是单纯的让 CPU 跑满。Windows 自带的工具无法精准控制 CPU 负载百分比,专业的压力测试软件又过于臃肿、附带多余功能容易干扰实验,因此手写一个轻量级、可控性强、无任何依赖的 CPU 压力测试工具是最优选择。本文分享的这款 CPU 压力测试工具基于C++11 线程库开发,支持自定义 CPU 占用率(0~100%)
2026-01-20 11:37:53
710
原创 C++ 实现摄像头监控 + CPU / 内存 / FPS 实时监控(精准显示 + 无闪烁 + 完整源码)
在做性能测试、图像处理相关开发时,经常需要实时监控程序运行时的CPU 使用率、内存占用、摄像头帧率 (FPS)三个核心指标,直观反馈硬件负载与程序运行效率。本文将分享一套完整、可直接编译运行、精准度拉满。
2026-01-19 17:14:06
1019
原创 C++ chrono 库精讲:steady_clock::time_point 与 duration 从原理到实战
在 C++ 开发中,我们经常会遇到精准计时、频率控制、耗时统计的需求,比如:控制界面文字 1 秒刷新一次、统计函数执行耗时、实现固定频率的任务调度、游戏帧率控制等。而 C++11 推出的<chrono>标准库,是处理时间相关需求的最优解,彻底替代了传统的time()clock()等 C 语言老旧接口。其中 **(时间点)和**(时间间隔)是<chrono>库的两大核心组件,也是日常开发中使用频率最高的两个工具,二者组合可以完美实现所有高精度计时、定时需求。本文将从。
2026-01-19 16:41:20
1223
原创 深入浅出 PID 算法:原理、实现与应用实战
PID 的核心优势:结构简单、易于实现、鲁棒性强,无需精确的系统数学模型。常见问题及解决方法稳态误差:增大积分系数 Ki,或引入积分分离策略(偏差大时关闭积分,偏差小时开启积分)。系统震荡:减小比例系数 Kp 和微分系数 Kd,增大采样周期 T。积分饱和:增加积分限幅,或采用增量式 PID。抗干扰差:对传感器数据滤波,减小微分系数 Kd。
2025-12-26 16:09:54
2072
原创 一文读懂 Keil uVision5:嵌入式开发的 “瑞士军刀”(附核心价值 + 使用场景)
Keil uVision5 不是简单的 “代码编辑器”,而是 ARM 嵌入式开发的 “全流程解决方案”—— 它的核心优势在于对 ARM 架构的原生适配、一站式开发体验、强大的调试能力,这也是它能占据嵌入式开发主流地位的根本原因。
2025-12-25 14:09:48
817
原创 从 0 到 1!Keil uVision5 开发 STM32 实战教程(附完整工程 + 调试技巧)
本文通过「点亮 LED」实战,覆盖了 Keil5 开发的核心流程:项目创建→代码编写→编译配置→调试下载。按键中断控制 LED;USART 串口打印;PWM 驱动蜂鸣器 / 电机;FreeRTOS 任务调度。
2025-12-25 14:05:36
1220
原创 超详细 Keil uVision5 下载安装教程(附激活 + 器件库 + 排错)
管理员权限 + 纯英文路径,这两个点踩坑率超 80%;注册机仅用于学习,商业项目务必购买正版 Keil 授权(避免法律风险);器件库按需安装,无需全装(节省硬盘空间);定期备份 Keil 安装目录(避免重装后丢失激活信息);若 Keil 启动慢,关闭不必要的组件(如 Pack Installer 自动更新)。
2025-12-25 13:34:02
2381
原创 【实战】C/C++ 实现 PC 热点(手动开启)+ 手机 UDP 自动发现 + TCP 通信全流程
本文聚焦 “手动开启 PC 热点” 场景,通过 UDP 广播实现设备自动发现,TCP 实现可靠通信,代码全程添加详细注释,兼顾可读性和实用性。无需手动配置 IP,手机连接热点即自动发现 PC;心跳保活 + 自动重连,保障通信稳定性;代码解耦,仅负责通信逻辑,热点由用户手动管理,降低权限依赖。该方案可直接应用于本地数据交互、工业控制、移动调试等场景,也可基于此扩展外网通信(如 FRP 内网穿透)。
2025-12-16 15:22:57
623
原创 VS2019 远程连接 Ubuntu 失败的解决方法
VS2019 远程连接 Ubuntu 失败的核心是SSH 服务未配置、网络不通、权限限制安装并启动 Ubuntu 的 SSH 服务;验证 Windows 与 Ubuntu 的网络连通性;核对 SSH 端口、用户名 / 密码;开启 root 用户的 SSH 登录权限。通过以上步骤,即可稳定建立 VS2019 与 Ubuntu 的远程连接,顺利进行跨平台开发。
2025-12-04 14:07:05
936
原创 Ubuntu 16.04 超详细 MySQL 安装配置教程(含可视化与 C++ 开发环境)
镜像源配置与环境准备;服务端、客户端及开发依赖安装;安全选项优化与服务测试;可视化工具部署;远程连接两种配置方案;C++ 开发环境配置(VS2019)。
2025-12-03 19:37:30
1283
原创 Ubuntu 16.04 安装配置 MySQL 数据库(含远程连接与可视化工具)
服务端与客户端的安装验证;安全选项优化;可视化工具部署;远程连接配置。
2025-12-02 16:11:51
1126
原创 【MySQL 基础】为什么安装 MySQL 需要同时装 server 和 client?
MySQL 的和server 是 “数据引擎”:提供存储和计算能力;client 是 “操作入口”:提供与引擎交互的工具。只有同时安装,才能实现数据库的完整功能 —— 这也是 C/S 架构软件的典型设计逻辑。
2025-12-02 15:50:35
428
原创 Ubuntu 16.04 实现 root 自动登录
核心流程:启用 Root 密码→编辑配置文件→写入配置→重启生效;遇到 vi 方向键问题,优先用「方法 1 安装完整版 Vim」彻底解决;测试环境用 Root 自动登录,生产环境用免密码 sudo。
2025-12-01 18:44:52
773
原创 深入浅出理解 NTP 协议:网络时间同步的核心技术解析
NTP 协议作为网络时间同步的 “基础设施”,其稳定性直接影响分布式系统的日志溯源、数据一致性和安全合规性。掌握 “原理 + 配置 + 排查” 的核心能力,是运维和开发人员的必备技能。
2025-12-01 14:42:48
1916
原创 Navicat 连接 Ubuntu 远程 MySQL 数据库:从配置到实战全教程
Ubuntu 端配置 MySQL 远程访问 → Navicat 填写连接信息 → 可视化管理数据库。必须修改 MySQL 的为0.0.0.0,并授权远程用户;开放 Ubuntu 防火墙 3306 端口,否则会被拦截;旧版 Navicat 需适配 MySQL 8.0 的加密方式,切换为。按本文步骤操作后,即可通过 Navicat 便捷地管理 Ubuntu 上的 MySQL 数据库,无需在终端中编写复杂的 SQL 语句,大幅提升开发效率。
2025-11-26 11:34:40
681
原创 Ubuntu 安装 MySQL 数据库超详细教程
更新源 → 安装 mysql-server → 初始化 root 密码 → 配置远程访问 → 验证连接。MySQL 8.0 默认无密码,需手动设置 root 密码;远程访问需修改并授权用户,同时开放 3306 端口;加密方式优先用,旧客户端兼容问题可切换为。
2025-11-26 11:13:50
2465
原创 Windows VS2019 远程 Linux(Ubuntu)开发注意事项
远程开发的核心是「网络互通 + 跨系统适配 + 权限 / 同步一致性」,以下是覆盖。
2025-11-25 19:14:04
527
原创 Windows 下VS2019 远程 Linux 开发完整教程:从连接配置到项目创建(附报错解决)
VS2019 远程 Linux 开发的核心流程可概括为「Linux 端环境准备 → VS 远程连接配置 → 项目创建与编译 → 调试运行」,关键是确保 SSH 通信正常、Linux 端依赖齐全、本地智能感知关联远程头文件。通过本文的步骤,你可以在 Windows 端用 VS2019 无缝开发 Linux 项目,既能利用 VS 的强大编辑和调试功能,又能直接在 Linux 环境中运行程序,完美解决unistd.h等 Linux 专属头文件识别问题。
2025-11-25 18:14:22
971
原创 VMware 中 Ubuntu 与 Windows 双向复制粘贴失效?完整解决教程(含 Wayland 冲突修复)
安装→ 2. 开启 VMware 剪贴板双向共享 → 3. 切换 / 默认 Xorg 协议。该方案覆盖临时 / 永久场景,操作后剪贴板可稳定实现跨系统同步。
2025-11-25 16:58:33
1397
原创 Ubuntu 的 Qt 窗口正常显示但仍有 Wayland 警告?彻底消除 + 原理详解
若窗口正常显示,可忽略警告(不影响使用);若想消除警告,优先用「方法 1(永久配置 X11 协议)」,简单高效且无兼容风险;避免盲目尝试 Wayland 协议,尤其是 Qt 5.x 用户,容易引发新的窗口问题。按以上方法操作后,警告即可彻底消除,且不影响 Qt 程序的正常运行。
2025-11-25 16:31:48
702
原创 Ubuntu 的 Qt 窗口不显示:xcb 插件加载失败(Wayland/X11 兼容问题)全解
在 Ubuntu 22.04 Gnome 桌面环境下开发 Qt 项目时,不少开发者会遇到这样的困境:编译无报错,但运行后窗口迟迟不出现,终端却抛出错误,同时伴随提示。这并非插件缺失,而是 Wayland 显示协议与 Qt 兼容性冲突、xcb 插件依赖不足导致的典型问题。本文将从问题根源出发,提供可落地的分步解决方案,帮你彻底解决窗口渲染故障。
2025-11-25 16:25:19
1065
原创 解决 Ubuntu的Qt 编译核心报错:cannot find -lGL: No such file or directory
在 Ubuntu 环境下使用 Qt 开发时,很多开发者(尤其是新手)会在编译项目阶段遇到报错。这个问题看似复杂,实则是导致的 ——Qt 窗口渲染、图形绘制等核心功能依赖 OpenGL 库,编译器找不到libGL.so链接文件就会触发该错误。本文将从问题根源出发,提供 3 套循序渐进的解决方案,覆盖常规场景到特殊配置,确保彻底解决问题。
2025-11-25 16:16:46
1115
原创 FFmpeg 按 Unix 时间戳精准截取视频
该实现完全保留了原始代码的逻辑结构和功能,通过 FFmpeg 实现了 “按 Unix 时间戳精准截取视频且仅保留视频轨道” 的需求。无重新编码:仅复制视频流和符合条件的帧,截取速度快、画质无损失。时间精准:通过时间基转换和校准,确保截取的时间范围准确无误。资源安全:完善的资源释放逻辑,避免内存泄漏。兼容性强:支持 FFmpeg 兼容的绝大多数视频输入格式,输出为通用的 MP4 格式。使用时只需根据实际场景修改输入 / 输出路径和时间戳参数,即可快速实现视频截取功能。
2025-11-24 14:42:12
1046
原创 FFmpeg 核心参数配置:time_base 与 framerate 设置完全指南(含代码示例)
设置时机:编码时需在前配置codec_ctx的time_base和framerate,并同步到AVStream;核心逻辑:时间基精度必须高于帧间隔,毫秒级{1, 1000}是兼容性和精度的最优选择;时间戳是关键:帧的 PTS 基于,数据包时间戳需转换为;避坑要点:避免使用与帧率分子相同的时间基(如 240fps 用{1,240}),否则必踩精度坑。
2025-11-22 11:06:55
1126
原创 FFmpeg 录制视频模糊问题解决:time_base 参数的关键作用
FFmpeg 的time_base参数看似简单,实则直接影响视频编码的时间戳精度和编码器的决策逻辑。本文通过一个实际案例,说明了「时间基精度不足导致视频模糊」的问题根源,并给出了具体的解决方案和最佳实践。时间基精度应高于帧率要求的帧间隔,推荐使用毫秒级或微秒级时间基。
2025-11-22 10:43:06
1087
原创 解决 Qt TCP 传输中视频文件分片丢失问题:缓冲区等待机制的应用
在 TCP 文件传输开发中,一定要注意发送缓冲区的特性。发送完成后检查缓冲区状态确保所有数据都已实际发送处理网络异常情况这种等待缓冲区清空的机制虽然简单,但能有效解决分片丢失问题,提高文件传输的可靠性。在实际项目中,还可以根据需求调整等待间隔和超时时间,以平衡传输效率和可靠性。
2025-11-21 15:14:58
668
原创 C++ 使用 FFmpeg 录制音频完整教程(麦克风采集 + AAC 编码 + MP3/MP4 输出)
FFmpeg 作为音视频处理领域的核心工具库,提供了跨平台的音频采集、编码、封装能力。本文聚焦纯音频录制场景,详细讲解如何使用 C++ 结合 FFmpeg 实现从麦克风采集音频,编码为 AAC 格式,最终封装为 MP3 或 MP4 文件并保存到本地。相比音视频同步录制,纯音频录制流程更简洁,但需重点关注音频格式转换、采样率匹配、编码器配置等核心要点。本文适用于 Windows、Linux 平台,提供完整可运行代码及详细调试指南。FFmpeg 音频设备采集(麦克风)的核心 API 使用。
2025-11-20 17:09:59
1079
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅