- 博客(31)
- 收藏
- 关注
原创 QT中的trimmed() 方法(1)
是 Qt 框架 中 类提供的一个方法,用于 去除字符串首尾的空白字符(whitespace characters)。它的作用类似于标准 C++ 中的 的 操作,但专为 Qt 的字符串设计。移除字符串开头和结尾的所有空白字符,包括:空格 ()制表符 ()换行符 (、)其他 Unicode 空白字符(如全角空格)不会修改字符串内部的空白字符。返回一个新的 ,是原字符串去除首尾空白后的副本。原字符串不会被修改(因为 是隐式共享的)。3. 示例4. 对比其他相似方法方法作用是
2025-08-08 13:55:33
147
原创 用 Enigma Virtual Box 把 Qt 程序压成单文件 EXE——从编译、收集依赖到一键封包
关键词:Qt、windeployqt、Enigma Virtual Box、单文件、绿色软件。
2025-08-07 15:15:42
450
原创 学习的智能硬件QT教程笔记——(4)信号与槽学习
右键点击转到槽,在里面选择合适的信号,这里选择点击,即点击控件执行函数,(所执行的函数需要写在下图中的函数体中)。此时代码中会自动在设置的.ui文件对应的.cpp和.h文件中添加相应的槽函数。connect();// 连接信号与槽 (谁发出信号 发出什么信号(宏) 谁处理信号 怎么处理信号)链接:https://pan.quark.cn/s/e69d78830a0d?启动新进程,需在.h头文件中包含相应的类( #include )打开「夸克APP」即可获取。
2025-08-04 14:34:19
235
原创 为什么要烧录固件?——从生产到运维的全流程解析
烧录固件(Firmware)是嵌入式系统和电子设备开发、生产、维护中的关键步骤,其核心目的是。STM32单片机的固件决定了它是控制电机,还是处理CAN总线数据。
2025-07-30 11:26:18
471
原创 C++ 结构体struct学习
元素描述关键作用是否必须?成员变量结构体存储的数据项描述对象的状态核心,通常有成员函数操作成员变量的函数封装操作、实现对象行为常见,推荐使用构造函数特殊函数,对象创建时自动调用初始化对象状态强烈推荐有(至少默认)析构函数特殊函数,对象销毁时自动调用清理资源(内存、文件等)需要管理资源时必须访问说明符publicprivateprotected控制访问权限,实现封装良好设计推荐使用静态成员static变量/函数,属于结构体本身而非实例共享数据、提供类级别工具函数按需使用嵌套类型。
2025-07-22 15:36:46
602
原创 (qt代码解释1)代码解释:private: Ui::Widget *ui
的私有指针,用于在代码中操作你在设计器里拖出来的控件。,它包含了你在设计器里添加的所有控件的指针(例如。在这个头文件里,定义了一个命名空间。创建一个界面文件(如。
2025-07-22 14:07:08
152
原创 # 条件编译`#ifdef`、`#ifndef`等补充
/ 编译时定义宏:g++ -DUSE_OPTIMIZED_VERSION=1 main.cpp// 优化版本#else// 基础版本#endif。
2025-07-21 10:22:27
381
原创 C++ 中的 `#ifndef` 和 `#endif` 详解 (c++学习 )
C++ 中的 和 详解在 C++ 中, 和 是预处理指令,用于条件编译。它们共同构成了 C/C++ 程序中防止重复包含头文件的核心机制。工作原理首次包含头文件:后续包含头文件:避免重复定义错误:提高编译效率:防止循环包含:宏命名的通用规范命名格式:(全大写)示例: → → → 其他常见用法1. 功能开关编译时可通过 禁用日志功能3. 调试模式控制与 的比较特性/标准支持C/C++ 标准编译器扩展可靠性10
2025-07-19 17:59:55
270
原创 Keil 中代码缩进规则总结.md
Keil μVision IDE中代码缩进主要依赖手动控制,建议采用4空格缩进(而非Tab)以保持一致性。遵循层级缩进原则,函数体、条件语句、循环等代码块需增加一级缩进。推荐使用K&R大括号风格({不换行)。通过Edit→Configuration设置Tab为4空格并勾选"Insert spaces for tabs"。避免混用空格和Tab,复杂表达式可手动对齐。全项目应保持统一缩进风格,必要时可用Astyle等工具辅助格式化。
2025-07-19 14:58:55
349
原创 &在C++中的语法格式
C++中&符号有三种主要用法,各有严格语法规范:1) 取地址运算符&var(无空格);2) 引用声明Type& ref(类型后无空格);3) 位与运算a & b(前后加空格)。Keil等嵌入式环境特别强调区分引用声明和位与运算的格式差异,避免混淆。最佳实践要求取地址和引用声明时&紧贴标识符,位与运算保留空格,项目内保持风格统一,必要时用括号明确优先级。错误格式如& var或Type & ref会导致代码规范问题。
2025-07-19 14:34:12
408
原创 C++ 中,运算符 .、::、: 和 -> 的区别
C++中主要运算符的区别:.用于对象实例访问成员(如obj.member);::用于作用域解析,访问命名空间或类成员(如Class::staticVar);:用于初始化列表、继承和标签等语法;->用于指针访问成员(如ptr->member)。关键区别在于:.操作对象实例,::操作作用域,:是语法标记,->操作对象指针。ptr->member等价于(*ptr).member,而静态成员需用::访问。
2025-07-17 20:21:09
271
原创 (一)QCustomPlot 控件---QT Creater控件学习(自学)
中正确声明 QCustomPlot 的头文件。是 Qt 框架中一个功能强大的。
2025-07-17 19:47:58
1019
原创 面向过程和面向对象编程(自学)
摘要: 面向过程(POP)和面向对象(OOP)是两种编程范式。POP关注“步骤”,将任务分解为线性执行的函数(如菜谱步骤),适合简单逻辑。OOP关注“对象协作”,将数据和操作封装为独立对象(如厨师、锅具等),通过交互完成任务,支持封装、继承、多态,更适合复杂系统。关键区别在于:POP强调“怎么做”(函数流程),OOP强调“谁来做”(对象职责)。POP直接高效但难维护,OOP结构清晰但稍复杂。现代开发以OOP为主,但POP仍用于脚本或性能敏感场景。理解两者差异对编程思维至关重要。
2025-07-17 19:45:16
794
原创 Qt Creator 中开发一个软件的完整流程和文件层级结构
本文介绍了在Qt Creator中开发软件的基本流程和文件结构。开发步骤包括:创建项目(选择模板、设置路径和模块)、设计界面(拖拽控件、修改属性)、编写代码(声明变量、实现功能)、编译运行和调试。项目文件结构主要包含Headers、Sources、Forms、Resources文件夹和.pro配置文件。文章还详细说明了关键文件的作用,如.pro项目配置、main.cpp程序入口和UI文件关联方式,并提供了新手常见问题的解决方案(如控件查找、程序崩溃处理等)和学习建议(从基础功能入手、查阅文档)。
2025-07-17 19:38:40
1246
原创 git常用指令
Git是一个分布式版本控制系统,它帮助开发者跟踪和管理代码变更。这些命令覆盖了Git版本控制的大多数常见操作。掌握这些命令对于日常的版本控制工作非常有帮助。
2024-09-28 11:22:01
389
原创 嵌入式面试———C常见问题
数组是在创建时大小就固定的数据结构。例如,定义一个整数数组:c定义和使用在C语言中,数组是一种基本的数据结构,用于存储固定大小的相同类型的元素序列。数组的声明包括指定元素的类型和数组的长度。特点固定大小:数组的大小在声明时确定,并且不能改变。零索引:数组的索引从0开始。连续内存:数组元素在内存中是连续存储的。相同类型:数组中的所有元素必须是相同的数据类型。可以是多维的:可以定义多维数组。malloc()malloc()联合体(union):不同的数据共享同一块内存空间。结构体(
2024-09-28 11:21:18
1499
原创 嵌入式面试——常见排序
冒泡排序是一种简单的排序算法,它重复地遍历待排序的列表,比较每对相邻元素,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复进行的,直到没有再需要交换的元素为止,这意味着列表已经排序完成。选择排序是一种简单直观的排序算法。它的工作原理是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。快速排序是一种分而治之的排序算法,它通过一个轴点将数据分为两部分,对左右两部分递归进行快速排序。在实际应用中,选择哪种排序算法取决于数据的特性和算法的性能要求。
2024-09-28 11:19:54
657
原创 嵌入式面试——操作系统(gpt版本)
在嵌入式系统领域的面试中,关于操作系统的问题通常涉及操作系统的理论知识、实际应用以及与特定硬件平台的集成。
2024-09-17 14:14:51
1496
原创 嵌入式系统的面试——低功耗设计
此外,我会使用状态机和事件驱动逻辑来优化时钟门控的实现,并在设计完成后进行彻底的测试和验证,以确保时钟门控不会影响系统的性能和可靠性。回答: 为了减少无线通信中的功耗,我会采取多种策略,包括降低数据传输速率、使用省电模式、优化数据包结构、数据压缩、调度传输、使用高效的调制编码方案、动态功率控制以及设计合理的睡眠和唤醒策略。回答: 时钟门控是一种在微控制器中广泛使用的低功耗技术,它通过物理上阻断不需要的时钟信号来禁用特定模块的工作,从而减少这些模块的功耗。此外,它还可以降低模块的漏电流,进一步提高能效。
2024-09-17 14:13:52
2661
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人