自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 光模块SFP行业 + STM32开发

如果公司业务是。

2026-06-16 14:03:38 197

原创 C# WinForm 上位机学习路线

如果后续需要复用“参数显示面板”,可以封装自定义控件,简化重复代码。

2026-06-16 13:54:52 236

原创 如何上传代码到GitHub中?

我来给你一套完整、一步到位的操作流程,从0开始教你把本地的 VSCode C# 学习文件夹上传到 GitHub。

2026-06-08 21:28:22 210

原创 Login_Form.cs 完整代码总结

好的!我给你写一份的完整代码,你直接覆盖原来的就行。

2026-07-02 16:32:42 203

原创 Login_Form.cs完整代码解释

【代码】Login_Form.cs完整代码解释。

2026-07-02 14:41:24 447

原创 Program.cs代码详细解释

加上了标题、按钮类型、图标参数,更规范。,一看就知道是"是不是新创建的"。调用了两次,现在只保留一次。

2026-07-02 11:44:28 16

原创 光路的发射和接受的原理图

SRC1 和下面长方形的连接 = 光源的输出光纤连到 OTP 设备作用:给光模块的接收测试提供标准的光信号为什么需要光源:接收测试需要给模块"喂"不同功率的光,看它能不能正确接收,这就需要一个标准光源 + 光衰减器来调节光功率大小。

2026-07-01 15:58:05 175

原创 单线程测试模块

程序启动→账号登录→主界面选择模块型号+测试模式(初/终测)→点击启动测试↓初始化I2C通信 + 是德仪表SCPI通信,连通硬件工装↓分支1(初测):逐项关键指标测试→数据对比阈值→收集不良信息→刷新进度+日志分支2(终测):全项目完整检测→逐项判定OK/NG→汇总不良原因↓测试结束:统计总耗时、展示最终PASS/FAIL结果、自动保存本地日志。

2026-06-30 15:04:56 203

原创 匹配现状 前途路线

底层优势:你天然是(软件上位机+底层固件+硬件原理图PCB),这类人才壁垒极高,年纪越大项目经验越值钱,远优于纯写业务代码的程序员。避雷:远离现场调试FAE、设备售后、工程实施岗(常年出差)。

2026-06-30 14:20:14 171

原创 SWITCH命令信息

作用:光纤光路切换器,多条SFP被测光模块共用一套OPM功率计/ERM消光比测试板。举个例子:4个待测光模块SFP1~SFP4,光纤先接到SLOT11、12两块光开关,通过SCPI指令切换,轮流把某一路光切到测试仪表,不用手动拔插光纤。

2026-06-30 10:43:28 326

原创 OTP问题合计记录

是单例,多线程同时调用会TCP指令错乱、设备busy报错。两块光开关独立互不干扰,这就是四路并行的硬件基础。把11槽IN1光路切到测量通路。把12槽IN1光路切到测量通路。

2026-06-29 17:51:53 208

原创 日语N2做题技巧

つまり含义:也就是说,换言之把前面复杂内容简单复述一遍,这句话基本就是主旨句。要するに含义:总而言之,归根结底文章收尾句,主旨直接落在这里。結局含义:到头来,总而言之。

2026-06-25 08:02:25 208

原创 日语语法学习

表示状态变化持续:“变得……(目前持续这个状态)”今は、バーゲンセールで、全ての商品が【安価】になっている。助词,表原因、背景:“因为(处在促销活动中)”需要我再给两个「安価」的例句帮你巩固用法吗;は是提示助词,强调当下这个时段。✅ 这道题正确答案就是。名词・ナ形容词,读音。

2026-06-24 16:29:39 352

原创 4、批量/自动测试逻辑(循环+状态控制)

✅ Thread.Sleep 硬件延时 + Application.DoEvents 缓解界面卡死。不会直接杀死循环,而是设置标记,等当前这一轮测试执行完毕再跳出,保证数据完整保存。适配 VS2019,全程小白一步一点,不漏任何操作,最终实现你前面所有知识点。你哪一步拖拽找不到控件、属性看不懂,随时截图发我,我给你针对性细讲。作用:程序刚打开时,停止按钮灰色不可点,只有启动测试后才能使用。进度条的数值区间上限,代表进度100%完成对应的数字。进度条的数值区间下限,代表进度0%对应的数字。

2026-06-24 15:51:10 198

原创 3、项目ProgressBar进度条、StatusStrip底部状态栏、ToolTip悬浮提示

/ 存储模拟测试数据列表,用于导出CSV报告// 每条数据:模块编号、电压、温度、测试结果// 初始化:自动创建今日日志文件夹// 启动计时器,刷新状态栏时间文件属于系统资源,打开后会被程序锁定;using{}执行完毕自动关闭文件、释放资源,不会出现「文件被占用无法删除/修改」的bug,是C#文件操作标准写法。### Task03:03_TestFunction_Demo 测试业务功能模块# 核心学习知识点。

2026-06-23 14:35:04 309

原创 2、「串口收发模拟闭环Demo」,完整吃透 SerialPort全套知识点

/ 串口实例// 绑定串口接收事件。

2026-06-22 10:58:56 226

原创 1.上位机经典布局 Demo(全覆盖 Dock + Anchor + 全部5种布局容器

模拟PanelGroupBoxDock停靠 +Anchor自适应做完你直接就能复用这套结构,改成真实的SFP测试软件。

2026-06-18 17:59:32 219

原创 lock 线程锁 学习笔记(含 static / 非static、互斥/不互斥 全场景)

static 锁:全局一把锁,所有调用都互斥,作用范围最大。实例锁:只对同一个对象生效,不同对象之间互不影响。想要互斥:保证多线程使用同一个锁对象。想要并发(不互斥):使用多个实例锁或直接去掉 lock。有共享资源必须加锁保证线程安全;完全独立任务可不用锁提升效率。

2026-06-15 11:25:19 194

原创 VS2008 + .NET3.5 环境、加热台TCP通讯场景

TCP通讯固定套路(所有网口设备通用)创建Socket → 连接IP+端口 → 文字转字节发送 → 接收字节转回文字代码分层思想类:只管和硬件通讯、封装功能(底层能力)Main方法:只管调用功能、打印结果(上层测试逻辑)新增功能只需要仿照现有方法仿写即可。下面逐行、逐语句、逐关键字超详细讲解,包含语法含义、参数作用、执行结果、设计原因,重点对你举例的做拆解,全程贴合 VS2008 + .NET3.5 环境,小白也能完全看懂。/// SFP EVB加热台 TCP 全功能控制类。

2026-06-15 10:28:41 274

原创 Program.cs + 自定义窗体

把项目里默认代码全部替换为下面内容,直接dotnet run即可运行。

2026-06-10 20:43:40 182

原创 VS2008 C# WinForm 简易计算器

双击窗体空白处,进入Form1_Load方法,先在窗体类内部// 全局变量:第一个数、运算符、标记是否输入新数字// 窗体加载无需额外代码。

2026-06-10 16:00:24 222

原创 C# WinForms 控件学习项目

基础控件使用 + 手写自定义复合组件(重点学习组件封装)// 初始化主窗口// 搭建系统自带控件// 搭建【自定义组件】(重点)#region 窗口基础配置Text = "C# 控件&组件学习项目";Font = new Font("微软雅黑", 9f);#endregion#region 一、系统基础控件演示// 1. Label 标签(静态文本组件)Text = "===== 基础系统控件 =====",

2026-06-09 22:07:22 308

原创 高斯模糊降噪/磨皮算法降噪图像

读取一张本地图片 → 给图片做高斯模糊(磨皮)→ 同时显示原图和模糊图 → 按按键关闭窗口。

2026-06-07 22:23:39 197

原创 在VScode使用C#并且调用opencv库

→安装 C# 库Emgu.CV→C# 版 OpenCV(图像处理/视觉)你执行它 =给项目装上 OpenCV 能力dotnet add package Emgu.CV.runtime.windows 是 Windows 专用的「原生运行时」包,专门带 OpenCV 的 .dll 文件;没有它,你的 C# 程序一用 Emgu.CV 就直接崩溃。Emgu.CV= C# 接口(让你能写代码)= Windows 版 OpenCV 底层 DLL(让代码能跑)缺一不可,否则运行报错、崩溃要不要我给你一段。

2026-06-07 11:21:31 418

原创 信号槽(Signal & Slot)原理 + 入门实战

点击界面按钮(Qt 内置clicked信号)→ 触发槽函数修改文本;自定义一个类,手动发射自定义信号→ 界面接收并响应;全程体现「信号发、槽接收、解耦通信」。sender.h必须条件类继承QObject类内部添加Q_OBJECT宏项目执行 qmake(让 MOC 生成元对象代码)信号与槽参数规则槽函数参数个数、类型必须和信号匹配;槽参数可以比信号少(后面的参数舍弃)。emit 作用只是 Qt 语法标记,标记「此处发射信号」,编译后会转为 MOC 生成的函数调用。解耦优势。

2026-05-31 16:26:31 243

原创 文件读写 + Qt Model/View + 自定义分页+搜索过滤

对应你之前了解的。

2026-05-31 16:25:11 203

原创 文件读写 + Qt Model/View + 自定义分页+搜索过滤

对应你之前了解的。

2026-05-31 14:04:44 204

原创 Qt Quick 登录界面代码学习笔记

main.cpp启动程序 → 加载main.qml主界面 →main.qml调用自定义输入框组件。

2026-05-13 23:17:24 300

原创 Qt Quick QML 登录界面代码学习报告

这个文件是通用输入框封装,把输入框的样式写好后,主界面直接调用即可,不用重复写样式,是QML「组件复用」的基础。:导入Qt Quick核心基础模块(版本2.0),QML的矩形、文本、基础语法都靠这个模块支持。:导入Qt Quick控件模块(版本2.12),提供输入框、按钮、标签等桌面原生控件,这里是为了使用TextField输入框。id:controlradius: 10:自定义组件的根元素,表示这个组件继承Qt自带的单行输入框,拥有输入文字、光标等所有原生输入框功能。id:control。

2026-05-12 23:15:59 428

原创 formil小项目

这几行代码的作用,是告诉 Qt:“我要使用哪些自带的工具包 / 功能模块”,相当于你写文章前,先把要用的笔、本子、尺子准备好。这是整个程序的 “根元素”,相当于你应用的 “主窗口本体”,所有界面元素都要放在这个 Window 里面。这是一份针对代码的逐行解析笔记,我会用最通俗的语言,搞懂每一行代码的作用,适合小白理解~这是你代码里的图片控件,用来显示一张图片(比如欢迎界面的 Logo 或背景图)。这个 Rectangle 就是你窗口的 “背景画布”,用来实现圆角背景效果。五、图片元素部分(Image {…

2026-05-11 08:11:50 351

原创 界面显示一个数字 → 点击按钮数字 +1, 这个数字是全局共享的,所有界面都能用。

我把都用的方式讲清楚,不跳步、不省略、不使用专业术语,你照着看就能完全理解!

2026-05-10 11:07:08 184

原创 C++ 单例类注册 QML 调用

这是一个Qt Quick 项目C++ 单例类:全局唯一实例,QML 可直接调用C++ 与 QML 交互:QML 调用 C++ 函数、显示数据、打印日志同时包含单例注册上下文对象注册两种 Qt 交互方式一个类,全局只能创建唯一一个对象,全程共享这个对象。这是 Qt 入门C++ 与 QML 交互 + 单例模式C++ 单例类 + 注册到 QMLQML 直接调用 C++ 函数全局唯一实例,高效安全同时学会单例注册 + 上下文对象注册两种交互方式。

2026-05-05 21:17:21 395

原创 Qt QML调用C++注册类

作为Qt新手,本文详细讲解如何将C++类注册到QML引擎,并实现QML调用C++函数的完整流程,包含完整代码和逐行解析,适合刚接触Qt QML的同学。基础前提:C++类必须继承QObject+加Q_OBJECT宏,才能被QML识别;注册类核心需在load QML前调用,QML中import对应命名空间后可实例化;函数调用:C++函数加标记,QML通过实例id+函数名调用;工程配置:pro文件需添加,QML文件必须加入资源文件;调试技巧:在C++函数中加qDebug()日志,验证是否被QML调用。

2026-05-04 20:17:21 394

原创 C++ 与 QML 交互入门笔记

大家好,这篇笔记会用一个极简的 Qt 项目,手把手教你理解,每一行代码都讲清楚作用,适合 Qt 初学者参考~

2026-04-26 21:30:33 863

原创 Qt 自定义表单组件 & 登录界面项目笔记

/ 导入Qt基础控件库 2.0版本// 导入Qt高级控件库 2.12版本// 列布局:内部元素 垂直 依次排列Columnid:root // 给当前组件起唯一ID:rootproperty string labeName:"" // 【自定义属性】外部可传入的标签文字// 例:外部写 labeName: "name",这里就会显示spacing: 10 // 内部元素之间的间距:10px// 标签控件:显示文字Label。

2026-04-22 21:59:27 289

原创 Qt P5

这是本代码的核心,实现带图标、圆角、黄色背景、红色文字的自定义输入框。TextField{anchors.centerIn: parent // 在橙色背景中居中显示width: 200 // 固定宽度color: "red" // 输入文字为红色font.pointSize: 24 // 文字大小24pxradius: 7background:TextField自带属性,用于替换默认背景用黄色矩形实现圆角输入框radius控制圆角大小:填满父控件:在父控件中居中:对齐方式。

2026-04-21 23:51:14 512

原创 SQL学习下

我现在:把所有 SQL 代码,不分开、不省略,直接复制就能用、就能看懂。

2026-04-20 23:18:20 55

原创 QT P4

ListModel= 数据源ListView= 展示列表Component= 每一项长啥样nameage= 直接用,不用定义(从ListModel自动来)你现在的代码完全正确、可以直接运行!需要我再帮你优化界面、加宽列表、让文字显示更完整吗?

2026-04-20 23:06:07 311

原创 QT-P3

QML 模块导入import是引入功能库,必须先导入才能使用对应组件顶层窗口是Qt Quick程序的主窗口,是所有元素的根容器id 作用:唯一标识元素,用于信号槽、样式绑定、元素引用MouseArea:Qt Quick中实现鼠标交互的核心组件,必须嵌套在可视化元素内锚点布局anchors是Qt Quick最常用的布局方式,fill填充、centerIn居中信号槽onXXX格式是QML的事件响应语法(如onClicked点击、双击)这份文档逐行解释。

2026-04-19 23:12:05 398

原创 QT总结-P2

import 模块名 版本号(必须指定版本,Qt Quick组件依赖版本)import "./文件夹路径"(导入本地自定义QML组件,直接用文件夹内的组件名)冗余导入:重复导入同一模块(如QtQuick 2.12/2.9)无效,保留高版本即可。这份代码是Qt Quick入门级UI代码,核心是创建窗口+展示带样式的Label;重点掌握:模块导入、根窗口ApplicationWindow、Label控件用法、字体/样式/基础布局属性;

2026-04-13 23:13:47 404

空空如也

空空如也

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

TA关注的人

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