- 博客(87)
- 收藏
- 关注
原创 【数据库学习】SQL基础语句(DDL,DML,DQL,DCL)速查
本文总结了SQL四大类语句的基本语法:1)DDL数据定义语句(库/表操作),包括创建、查询、修改和删除数据库及表的命令;2)DML数据操作语句(增删改),涵盖插入、更新和删除数据的语法;3)DQL数据查询语句,详细说明基础查询、条件过滤、聚合函数、分组排序和分页查询;4)DCL数据控制语言,介绍用户管理和权限控制操作。文章提供了各类SQL语句的标准格式和注意事项,是数据库操作的实用参考指南。
2025-12-10 15:08:20
229
1
原创 【QT学习】定时器(timerEvent与QTimer)
本文介绍了Qt中两种实现定时器的方法:1) 重写timerEvent事件处理器,通过定时器ID区分不同任务,支持动态管理多个定时器;2) 使用QTimer类,通过信号槽机制实现定时功能,提供更简洁的API和线程安全特性。文章详细说明了两种方法的实现代码、注意事项及适用场景,其中timerEvent适合需要精细控制多个定时器的场景,而QTimer则更简便且支持单次触发、暂停等功能。关键点包括定时器ID管理、避免阻塞事件循环、线程安全操作以及定时器精度控制等。
2025-12-04 10:44:14
630
原创 【QT学习】事件分发与事件过滤
本文介绍了Qt中的事件分发器和事件过滤器机制。事件分发器通过重写QObject的event()函数实现事件路由,将不同类型的事件分发给对应处理器。事件过滤器则采用观察者模式,通过installEventFilter()安装过滤器对象,在eventFilter()中拦截或放行事件。两者的主要区别在于触发时机和作用范围:过滤器在事件到达目标前拦截,可监控多个对象;分发器在对象内部处理事件。文章还提供了代码示例演示如何实现自定义事件处理和过滤,并总结了常见问题如过滤器不触发、内存泄漏等解决方案。这些机制为Qt应用
2025-12-03 17:18:51
1129
原创 【QT学习】绘图事件(paintEvent)与绘图设备(QPaintDevice)
本文介绍了Qt中的绘图事件和绘图设备。绘图事件(paintEvent)会在控件首次显示、大小改变或被遮挡后恢复时自动触发,可通过update()或repaint()手动调用。文中列举了常用的绘图函数如drawLine、drawEllipse等,并提供了示例代码。 绘图设备部分介绍了QPixmap(适合屏幕显示)、QImage(可访问像素)和QPicture(保存绘图指令)三种设备的使用方法,包含创建、绘制图形和保存的完整代码示例。最后展示了如何在paintEvent中重现QPicture保存的绘图步骤。这些
2025-12-03 11:48:06
245
原创 【QT学习】QCustomPlot绘制图表
摘要 本文介绍了如何在Qt项目中集成QCustomPlot库并实现折线图绘制。主要内容包括: 下载QCustomPlot库文件并添加到项目中 创建黑色背景的图表界面 配置图表标题、坐标轴样式和网格线 绘制模拟力控数据的折线图 关键样式设置:隐藏X轴、自定义Y轴样式、橙色曲线等 代码示例展示了完整的实现过程,包括创建QCustomPlot实例、数据生成和图表美化设置,最终呈现一个具有工业风格的力控曲线可视化界面。
2025-11-26 15:32:29
233
1
原创 【QT学习】信号与槽(无线程交互)
摘要:信号与槽是Qt框架用于对象间通信的核心机制,通过信号发出事件通知,槽函数响应处理,实现松耦合交互。使用前提包括:继承QObject、添加Q_OBJECT宏等。代码示例演示了教师类发送信号触发学生类槽函数的过程,以及按钮点击事件的连接方式。底层依赖元对象系统(moc)自动生成信号实现和槽注册,信号发射时会遍历执行所有绑定槽函数。该机制支持灵活的多对多连接,参数需类型匹配但数量可不等,相比传统回调更安全高效。
2025-11-18 11:40:05
378
原创 【C++学习】deque容器
摘要:deque是STL中兼具双端高效操作和随机访问特性的容器。核心优势包括:首尾插入/删除O(1)复杂度,支持索引访问,动态扩容不移动全部元素,采用"多个内存块+中控数组"的底层结构。常用操作包括5种初始化方式、4种元素访问方法,以及高效的双端插入/删除功能。典型应用场景包括滑动窗口算法、容器适配器底层实现等。注意事项:迭代器在修改操作后可能失效,存在内存碎片风险,存储自定义类需实现深拷贝。当需要频繁双端操作且保留随机访问能力时,deque是理想选择。(150字)
2025-11-05 15:17:16
274
2
原创 【C++学习】vector容器
STL是C++标准模板库,提供常用数据结构和算法。其核心组件包括容器、算法、迭代器等。vector是STL中最常用的动态数组容器,支持自动扩容和随机访问。文章详细介绍了vector的初始化、元素访问、容量操作、增删改查等常用方法,并强调了两大注意事项:频繁扩容会影响性能,建议预分配空间;迭代器在容器修改后可能失效,需要重新获取。此外还介绍了内存收缩、预留空间等高级用法,帮助开发者高效使用vector。
2025-11-05 10:27:41
421
1
原创 【C++学习】对象特性--多态
本文介绍了C++多态的实现要点:1)实现条件:基类声明虚函数、派生类重写虚函数、基类指针/引用指向派生类对象;2)抽象类与纯虚函数:纯虚函数(=0)使类成为抽象接口,派生类必须实现;3)关键注意事项:必须使用虚析构函数防止内存泄漏,重写函数需完全一致,非虚函数不触发多态。通过Animal基类和Cat/Dog派生类的示例代码,展示了多态的基本用法和特性。
2025-11-04 17:18:21
163
原创 【C++学习】对象特性--继承
本文摘要: 本文系统介绍了C++继承的5个核心知识点:(1)继承的基本语法及三种继承方式(public/protected/private)的特性对比;(2)父子类构造/析构函数的执行顺序规则;(3)父子类同名成员变量和函数的访问方法;(4)多继承的语法实现;(5)菱形继承问题及解决方案。重点阐述了类继承中的访问权限控制、同名成员处理、多继承冲突等常见问题,并通过代码示例演示了虚继承解决菱形继承问题的具体方法,为面向对象编程中的继承机制提供了实用参考。
2025-10-31 11:37:26
328
原创 【项目实战】mitt.ts轻量级的事件发射器库
mitt 是一个轻量级的事件发射器库,主要解决在JavaScript和TypeScript项目中事件的发布和订阅问题。它允许开发者在不同的部分之间进行松耦合的通信,而不需要直接引用彼此。
2024-12-23 15:29:53
627
原创 【Vue3学习】Vue3+setup语法糖+typeScript中的组件传值
v3+setup+ts中的常用组件传值方式:父子/非父子,provide/inject爷孙双向传值
2024-12-17 15:11:13
1166
1
原创 【Vue3学习】ref,reactive,toRef,toRefs的功能与用法区别
ref,reactive,toRef,toRefs的使用;解构,展开运算符对响应式的影响
2024-12-17 10:03:20
674
原创 【JS学习】如何封装提供回调方法和带有默认参数的函数
使用callback函数封装代码,可以解决异步任务带来的问题,但是多个回调函数嵌套会造成回调地狱的问题.但是,依旧存在需要单独封装功能函数的情况.例如当前存在一个业务逻辑,需要异步解决,并且需要等待其完成后获取数据在执行后续逻辑,同时需要将这部分的功能代码提取出来进行封装以供复用.那么此时对这个单独的处理逻辑可以采用callback函数进行封装.可能我的描述不太清晰,但在实际工作中确实遇到需要这样做的情况。
2024-12-09 00:55:37
505
原创 【JS学习】javascript中的模块化导入和导出
默认导出:每个模块只能有一个默认导出,导入时可以使用任何名称。命名导出:可以有多个命名导出,导入时需要使用相同的名称或解构赋值重命名。混合导出:一个模块可以同时有默认导出和命名导出。动态导入:使用 import() 函数在运行时动态加载模块。
2024-12-09 00:01:20
534
原创 【浏览器知识】Cookies,Session Storage,Local Storage区别
用途:Cookies主要用于保持HTTP连接中服务器与客户端之间的状态信息。它们是服务器设置的,用于跟踪会话,记住用户偏好,以及实现其他功能。存储容量:每个域名最多可存储20个Cookie,每个Cookie的大小限制为4KB。存储位置:Cookies存储在用户的浏览器中,随每个请求发送回服务器。安全性:由于Cookies随每个HTTP请求发送,存在安全风险,如劫持和注入攻击。因此,敏感信息不应存储在Cookies中。同源策略:Cookies受同源策略限制,仅限于设置它们的域访问。使用建议:用于保持
2024-12-08 23:26:54
494
原创 【CSS学习】css中的样式穿透
在Vue 2中,可以使用 ::v-deep 伪类来进行样式穿透,Vue 3也支持这种写法。/deep/ 选择器曾经是Vue中用于样式穿透的一种方式,但在Vue 3中已被废弃。::v-slotted() 伪类用于影响使用了 的子组件样式。在Vue 3中,推荐使用 :deep() 伪类来进行样式穿透。/* 影响使用了 的子组件样式 *//* 影响子组件的样式 *//* 影响子组件的样式 *//* 影响子组件的样式 *//* 将样式应用到全局 */
2024-11-03 01:07:55
658
原创 【BUG解决】(vue3+echart报错):Cannot read properties of undefined (reading ‘type‘)
这是 vue3+echart5 遇到的报错:Cannot read properties of undefined (reading ‘type‘)用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能。作用:将一个由reactive生成的响应式对象转为普通对象。有些值不应被设置为响应式的,例如复杂的第三方类库等。作用:标记一个对象,使其永远不会再成为响应式对象。
2024-07-30 20:51:05
812
原创 【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(二)
上一篇只是简单演示了’下一张’的操作和整体的设计思路,这两天把剩余功能补全了,代码经过精简,可封装当成轮播组件使用,详细如下.
2024-07-22 09:56:10
1204
原创 【性能优化】前端加载,渲染十万条数据
子盒子C,信息展示的载体,里面是一定数量的单条展示信息盒子,子盒子C相对于父盒子A绝对定位,每次滚动时修改偏移量,保证信息显示在父盒子A的视口,不随滚动卷到其他地方。项目中某个弹窗展示设备信息卡片,返回的设备信息很多,页面样式有很花哨,导致渲染极其缓慢。子盒子B,用于模拟滚动条长度,高度设为单条展示信息盒子的高度×子盒子的数量。采用虚拟列表的方式,滚动时,dom元素数量不变,只改变展示的数据。//冻结数据,优化性能,//接收传入本组件的超大数据。//列表展示的开始索引。//列表展示的结束索引。
2024-06-03 15:24:42
625
原创 threejs的基本属性(三)
1.创建场景,摄像机,渲染器,几何体,材质,网格。场景.add(网格),网格加入场景中。相机的轨道控制器是个单独的对象。场景.add(坐标辅助器)渲染 = 场景+摄像机。网格 = 物体+材质。
2024-05-23 16:14:39
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅