- 博客(3174)
- 资源 (44)
- 收藏
- 关注
原创 鸿蒙OS应用开发的开发环境
当你想投入到这个生态系统里的时候,首先是使用它,这是最方便的方法,比如买一台带有鸿蒙系统的手机,并且不断地使用它,提出你自己的建议,让它进行完善和改进。在这里主要开始学习开发鸿蒙系统的应用,由于鸿蒙系统发布的时间不是很久,当然是相对安卓和IOS来说,因此它是一个全新的系统,并且致力于创建一种更方便的软件方式,它引入不同于以往的软件开发语言,以及不同的界面接口。这时候,就可以看到应用的名称,包的名称,保存的位置,编译的SDK版本,运行模式,是否可视化编辑,语言,兼容性API,设备类型。
2023-12-07 12:31:53
881
2
原创 如何在项目中使用 Krypton 控件?
本文介绍了在.NET WinForms项目中快速使用Krypton控件的两种方法:可视化拖拽和代码引用。可视化方式通过VS工具箱直接拖拽控件,自动添加引用;代码方式需手动引用dll并编写创建逻辑。文章详细说明了前期准备、具体操作步骤、主题设置技巧和常见问题解决方法,推荐使用KryptonExplorer和官方文档辅助开发。Krypton控件支持.NET Framework 4.0+,提供丰富的主题样式,是WinForms界面美化的免费优质方案。
2026-02-06 10:46:14
22
原创 Krypton 控件的性能如何?
Krypton控件在.NET WinForms中的性能表现分析显示:其核心优势在于渲染优化(双缓冲、主题缓存)、严谨内存管理(事件解耦、轻量设计)和高效布局计算(按需布局、懒加载)。虽然复杂控件初始化(如Ribbon)和高频样式切换存在10-50%性能损耗,但通过异步初始化、虚拟滚动等优化手段可显著改善。实测表明基础控件性能接近原生,适合美观优先的中等复杂度应用,而追求极致性能的场景建议混合使用Krypton基础控件和原生控件。
2026-02-06 10:32:09
5
原创 Krypton 仓库介绍
KryptonSuite是一套开源的.NET WinForms控件集,提供49个基础控件和Office风格Ribbon、VS风格停靠窗口等高级功能。采用模块化设计,包含KryptonToolkit、KryptonRibbon等核心组件,支持主题定制、布局持久化和内存优化。仓库包含完整源代码、示例程序和帮助文档,基于.NET 4.0开发,采用开源免费授权。这套控件解决了原生WinForms样式不统一、功能薄弱的问题,适合快速开发现代化桌面应用。
2026-02-06 10:26:31
142
原创 Blender里分析快捷键G键的源码实现5 transformEvent
transformEvent是Blender变换工具的核心事件处理函数,负责将用户输入转换为变换数据。其主要功能包括: 按优先级处理各类事件:数字输入>定时器>鼠标移动>模态快捷键>普通按键 核心转换逻辑: 鼠标移动→计算变换量(通过applyMouseInput) 快捷键(X/Y/Z)→轴向锁定 回车/ESC→确认/取消变换 数据更新: 维护TransInfo结构体中的变换状态 标记视图重绘需求 设计特点: 导航时自动跳过变换处理 支持精度模式、吸附等辅助功能 为后续transfo
2026-02-01 18:36:04
116
原创 C#里保存类为XML文件时怎么样把枚举类型保存为数字编号
本文介绍了一个基于.NET Framework 4.6.2的WinForm应用,实现了XML序列化与反序列化功能,确保枚举值以数字形式存储而非名称。核心设计采用FileConfig类的"双属性"模式:通过[XmlIgnore]隐藏业务用枚举属性FileType,同时使用[XmlElement]标记byte属性FileTypeValue进行XML操作。系统执行流程为:点击按钮→构造测试数据→序列化为XML→反序列化读取→控制台输出结果。该方法有效解决了.NET Framework 4.6.
2026-01-30 13:30:52
77
1
原创 C#里用HttpListener实现WEB API接口服务端
本文介绍了一个基于WinForm的HTTP服务实现方案。该方案使用HttpListener类创建了一个支持JSON POST请求处理的轻量级Web服务器,主要特点包括:1) 纯线程方式实现请求监听和处理;2) 提供标准化的JSON响应格式;3) 支持自定义请求处理逻辑;4) 包含完整的日志记录功能。代码示例展示了如何初始化服务、处理不同类型的请求(包括JSON POST),并提供了线程安全的UI更新机制。该实现适用于需要简单HTTP接口的Windows桌面应用程序,可作为程序间通信的基础设施。
2026-01-28 16:45:24
67
原创 Blender里分析快捷键G键的源码实现4 transform_modal
摘要:transform_modal是Blender变换工具的核心函数,负责处理移动/旋转/缩放操作中的用户输入事件。该函数接收上下文、操作符和事件参数,通过TransInfo结构体存储变换数据,依次执行:1)初始化变换信息;2)处理3D鼠标事件;3)解析鼠标/键盘输入并计算变换量;4)兼容视图导航操作;5)应用变换到物体属性;6)判断模态结束条件;7)处理模式切换或清理资源。最终返回操作符状态,实现"按下G键移动物体"的完整交互流程,支持实时变换、视图导航和动态模式切换等功能。
2026-01-27 22:33:46
254
原创 Blender里分析快捷键G键的源码实现3 wm_handler_operator_call
摘要:wm_handler_operator_call是Blender事件处理中模态操作符的核心执行函数,主要负责两种场景:1)执行运行中的模态操作符(如变换操作中处理鼠标移动),调用其modal函数;2)初始化新操作符(如首次按下G键),调用invoke函数。该函数会处理操作符的上下文隔离、资源管理、撤销支持等关键逻辑,并根据操作符执行状态返回相应的事件处理结果。它是"用户交互→操作符执行"流程的最终实现环节,特别是"G键→变换→完成"这一完整操作链路的最后一公里,
2026-01-27 22:19:29
68
原创 Blender里分析快捷键G键的源码实现2
本文分析了Blender中G键触发物体移动变换的处理逻辑。事件处理通过wm_handlers_do_intern函数实现,采用优先级机制:Gizmo>UI>操作符>拖放>快捷键。按下G键时,首先由WM_HANDLER_TYPE_KEYMAP处理器匹配快捷键表,触发TRANSFORM_OT_translate操作符;随后创建WM_HANDLER_TYPE_OP模态处理器,通过transform_modal函数处理鼠标移动事件,实现物体位移。整个过程通过poll函数确保上下文匹配,并采用
2026-01-25 22:58:28
150
原创 Blender里分析快捷键G键的源码实现1
本文分析了Blender中物体变换快捷键的实现机制。核心代码keymap_transform函数负责初始化变换工具的模态快捷键映射,将所有变换模式(移动、旋转、缩放等)的操作符统一绑定到变换模态快捷键表中。该函数通过遍历transform_modes数组,将各变换模式的操作符ID注册到模态映射表,并绑定通用变换操作符作为兜底处理。这种设计实现了变换状态下的快捷键统一管理,支持不同变换模式的快捷切换,并确保变换过程中按键操作的可靠响应,为G/R/S等变换快捷键提供了底层支持。
2026-01-25 12:48:50
224
原创 Blender 变换工具(Transform)中处理鼠标输入的核心函数
摘要:Blender的applyMouseInput函数是处理鼠标输入到3D变换的核心中间层。它支持虚拟鼠标模式(用于高精度操作)和真实鼠标模式,通过计算偏移量、应用精度缩放(如Shift键调节),并使用回调函数将2D鼠标坐标转换为3D变换值(移动/旋转/缩放)。函数采用分层设计,通过apply回调实现不同变换模式的逻辑解耦,post回调进行后处理,确保操作平滑精准。该机制是Blender实现鼠标交互与物体变换的关键桥梁。
2026-01-25 00:50:47
93
原创 Blender 在 macOS 系统下的快捷操作键
本文详细介绍了Blender在macOS系统下的快捷操作指南,重点解决macOS与Windows/Linux快捷键的差异问题。核心内容包括:1) 键位映射规则(Cmd替代Ctrl,Option替代Alt);2) 通用快捷键(如Cmd+S保存、Cmd+Z撤销);3) 各模块高频操作(视图导航、物体变换、编辑模式等);4) macOS专属适配方案(解决空格/F键冲突);5) 实用组合技巧(精准移动、镜像建模等)。通过系统化的快捷键整理和macOS专属优化建议,帮助用户提升Blender操作效率,特别针对建模、编
2026-01-24 15:06:34
147
原创 使用Krypton例子(4)ButtonSpec Playground
摘要:这是一个基于KryptonToolkit的WinForm按钮规格演示程序,主要用于管理KryptonHeaderGroup控件的按钮规格。核心功能包括:动态添加/删除/清空按钮规格(ButtonSpec),调整主/次标题显示位置(上/左/右/下),通过PropertyGrid实时编辑选中按钮的属性。程序采用模块化设计,包含按钮操作、标题位置调整和状态管理等功能,可作为Krypton控件开发的调试工具。
2026-01-20 17:36:57
90
原创 使用Krypton例子(3)KryptonManager
摘要:KryptonManager是KryptonToolkit库的全局样式管理核心组件,负责统一调度所有Krypton控件的外观样式。其主要功能包括:1)通过GlobalPaletteMode属性一键切换预设主题;2)管理渲染引擎优化性能;3)实现应用程序级样式配置;4)提供样式变更事件等辅助功能。在Krypton4.6版本中,它以单例模式确保样式唯一性,简化了样式绑定流程,并支持Office2007/2010等经典主题。通过KryptonManager,开发者可以高效实现WinForms应用程序的全局样
2026-01-16 16:53:16
58
原创 创建一个CustomCheckedListBox来替代VS自带的组件CheckedListBox
摘要:本文实现了一个自定义WinForm无闪烁CheckedListBox控件,通过双缓冲技术解决了原生控件的闪烁问题。控件包含核心数据存储(_items/_checkedStates)、双缓冲绘制(_bufferBitmap)、滚动条交互(_scrollOffset)等模块。关键设计包括:1) 采用内存画布预渲染解决闪烁;2) 点击任意区域切换勾选状态;3) 动态计算滚动条位置;4) 精准局部重绘优化性能。该控件提供与原生CheckedListBox兼容的API(如CheckedItems/Selecte
2026-01-13 09:53:08
76
原创 使用Krypton例子(2)KryptonHeaderGroup
摘要:本文详细解析了使用KryptonToolkit在WinForms中为KryptonHeaderGroup控件添加自定义按钮的实现方法。代码通过ButtonSpecHeaderGroup类创建了刷新、关闭和设置三个功能按钮,分别配置了图标、提示文本、对齐方式和点击事件。其中刷新按钮使用系统信息图标并绑定数据刷新逻辑,关闭按钮添加确认对话框,设置按钮提供模块设置功能。文章指出了代码中存在的两个问题:关闭/设置按钮缺少图标设置,以及设置按钮的对齐方式注释与代码不符,并给出了优化建议。最终实现了一个带操作按钮
2026-01-11 18:08:26
179
原创 使用Krypton例子(1)
本文介绍了Krypton库的基本使用方法:首先需要将Krypton的DLL添加到控件面板中,之后就可以拖拽控件到窗口上使用。文章提供了一个简单的界面程序示例,展示了如何添加控件代码并实现按钮点击事件。示例代码演示了创建窗体、初始化组件以及处理按钮点击事件的基本流程,当点击按钮时会弹出一个显示"Krypton"的消息框。
2026-01-11 16:21:36
58
原创 C#里多列表头的实现方式2
摘要:本文介绍了一个支持树形多级表头的自定义DataGridView控件(DataGridViewEX),通过解析外部传入的TreeView结构实现类似Excel的多级表头效果。控件核心功能包括:1) 初始化模块解析TreeView结构,计算层级关系和列映射;2) 绘制模块通过重写OnCellPainting事件,递归绘制节点及其父节点表头;3) 事件响应模块处理列宽变化和滚动事件,确保表头同步更新。关键技术点包括树形结构与表头的映射规则、递归绘制算法、局部刷新优化以及完善的异常处理机制。该控件有效解决了标
2025-12-03 17:30:03
136
原创 C#里使用DataGridView来创建二级列表头的例子
本文介绍了在WinForms的DataGridView中实现二级表头的技术方案。该方案通过自定义绘制方法,在原始列头上方叠加一级合并表头,形成清晰的层级结构。核心实现包括:1)使用CellPainting事件分层绘制表头;2)处理滚动偏移实现表头同步滚动;3)通过列宽变化事件保持表头宽度同步;4)采用双缓冲技术优化显示效果。方案支持水平滚动、列宽调整等功能,通过Level1Header类管理表头层级关系,使代码结构清晰。最终实现了信息分类明确、显示美观的二级表头效果。
2025-12-02 19:09:12
168
原创 Krypton类库的框架图
Krypton是基于.NET WinForms的开源UI组件库,采用分层架构设计。核心分为:依赖层(WinForms/GDI+基础)、基础设施层(抽象基类/工具类)、样式层(Palette调色板系统)、视图层(View复合渲染体系)和组件层(可复用控件)。通过复合模式构建可视化组件,支持策略模式实现一键换肤,提供Office/VS等预设样式。其优势在于高度可定制化、组件复用性强且兼容原生WinForms,适用于Windows桌面应用开发。ViewDrawButton等核心类体现了视图与样式分离的设计理念。
2025-11-25 09:10:00
88
原创 VisualControlBase 类中的 OnNeedPaint 方法
VisualControlBase类中的OnNeedPaint方法处理调色板存储发出的重绘/布局通知。该方法在控件样式变更时确保及时更新外观,同时优化性能:验证事件参数有效性,检查控件状态;标记需要重新计算透明区域;根据事件参数决定是否需要重新布局;智能处理重绘需求,支持局部或全部重绘,并采用异步刷新避免UI卡顿。通过脏标记和区域化重绘实现高效更新,保证控件在样式动态变化时的正确性和性能。
2025-11-19 11:22:41
324
1
原创 VisualControlBase 类中一个名为 KryptonContextMenu 的属性
摘要: 这段代码定义了一个KryptonContextMenu属性,用于管理Krypton风格控件的右键上下文菜单。作为Krypton控件库的组成部分,它替代了标准的ContextMenuStrip,提供更统一的视觉风格。属性通过get/set访问器实现对菜单实例的管理,在赋值时自动处理事件绑定与解绑,防止内存泄漏。特性标注使其在Visual Studio设计器中归类到"Behavior"类别,并显示描述性文本。该属性采用虚拟定义,允许派生类重写行为,体现了Krypton控件库良好的扩展
2025-11-19 11:03:21
105
原创 VisualControlBase 类中对 ContextMenuStrip 属性
该代码重写了VisualControlBase类的ContextMenuStrip属性,用于管理控件的上下文菜单行为。核心功能包括:1. 获取菜单时直接调用基类实现;2. 设置菜单时先解绑旧菜单的事件处理器,再存储新菜单并绑定其Opening/Closed事件。通过事件钩子机制确保菜单打开时能设置正确的渲染器,使菜单样式与控件风格保持一致,同时避免内存泄漏。这种实现既保留了基础功能,又扩展了自定义逻辑。
2025-11-18 19:52:48
179
原创 VisualControlBase 抽象类的构造函数
摘要: VisualControlBase抽象类的构造函数主要负责控件的核心初始化工作。它通过SetStyle方法配置关键绘制样式(双缓冲、用户绘制、大小改变重绘),确保绘制流畅;初始化刷新/布局回调委托和绘制处理程序;设置初始状态标记(布局脏标记、透明计算等);配置样式系统(全局调色板、重定向器)以保持主题一致性;并附加全局事件监听。这些操作为自定义控件提供了统一的绘制、布局和样式处理基础,简化了后续开发工作。
2025-11-18 19:36:05
72
原创 VisualControlBase 的抽象基类
摘要:VisualControlBase是一个用于实现UI控件的抽象基类,继承自Control并实现IKryptonDebug接口。它具有以下特性:1) 提供控件基础功能;2) 支持调试监控;3) 内置调色板和渲染系统;4) 优化绘制和布局性能。该类通过ToolboxItem等特性标识设计时行为,包含布局状态、调色板、渲染器等核心字段,并定义了PaletteChanged等重要事件。作为抽象类,它封装了通用功能,为具体控件开发提供基础支持。(149字)
2025-11-18 19:29:29
482
原创 C#里类MethodInfo的作用
MethodInfo是C#反射机制中的核心类,用于获取和操作方法的元数据信息,包括方法名、参数、返回值类型等属性。它支持动态调用实例方法和静态方法,适用于框架开发、插件系统等场景。虽然反射调用存在性能开销,但通过缓存MethodInfo实例可优化性能。使用时需注意安全性控制(如访问权限)和异常处理,避免参数不匹配等问题。
2025-11-18 19:25:12
125
原创 IKryptonDebug 的接口
IKryptonDebug接口提供了Krypton控件的调试辅助功能,包含一个重置方法和两个计数器属性。KryptonResetCounters()用于重置内部计数器,KryptonLayoutCounter获取布局循环次数,KryptonPaintCounter获取绘制循环次数。这些功能帮助开发者监控UI性能,识别布局和绘制问题,便于优化控件性能表现。
2025-11-18 19:22:27
208
原创 UI引擎里AceAbility::OnStart函数1
摘要:这段代码展示了AceAbility::OnStart方法的核心初始化流程,主要包括:1)调用父类Ability的默认初始化;2)生成唯一的容器ID;3)使用once_flag确保一次性初始化;4)获取Ability上下文对象;5)准备应用缓存目录。该过程为后续AceContainer创建和ArkUI引擎初始化奠定了基础,体现了HarmonyOS在生命周期管理、资源隔离和多实例处理方面的设计思想,支持冷启动、配置变更恢复和分布式迁移等场景。
2025-10-31 15:46:59
110
原创 鸿蒙应用的启动流程的过程
《HarmonyOS中AceAbility::OnStart()的调用机制分析》 摘要:本文详细剖析了HarmonyOS中AceAbility::OnStart()方法的调用机制。该方法由框架自动管理,调用路径依次为:用户操作触发StartAbility()→AbilityManagerService处理请求→AbilityThread创建实例→通过反射机制最终调用目标Ability的OnStart()。开发者只需重写该方法实现业务逻辑,不应直接调用。调用时需注意:1)必须在200ms内完成,耗时操作应异步
2025-10-28 18:51:57
282
1
原创 AceContainer类中用于初始化任务执行系统的核心方法--AceContainer::InitializeTask
本文解析了AceContainer类中InitializeTask方法的实现逻辑,该方法负责初始化ArkUI框架的任务调度系统。主要功能包括:创建任务执行器(支持自定义或默认实现)、初始化平台线程(UI线程)、设置JS线程策略(声明式JS前端复用UI线程,其他前端使用独立JS线程)。代码体现了性能优化(减少线程切换)与资源隔离(卡片独立线程)的设计理念,通过灵活的参数配置支持主应用、卡片及分布式等不同场景,是ArkUI框架实现高效渲染的核心机制。
2025-10-28 16:27:29
106
原创 三个构造函数AceContainer的区别和作用
本文分析了AceContainer类的三个构造函数:1)FA模型构造函数,使用shared_ptrAppExecFwk::Ability,标识为传统FA模型;2)Stage模型基础构造函数,采用weak_ptr<Context>和weak_ptr<AbilityInfo>,支持子容器标识;3)Stage模型动态组件构造函数,新增TaskWrapper参数支持任务定制。三者通过模型隔离、资源优化和动态扩展设计,为HarmonyOS应用提供多场景适配能力,区别主要体现在核心参数、任务管理
2025-10-24 17:42:23
247
1
原创 AceContainer::Initialize()函数的分析
该代码展示了HarmonyOS ArkUI框架中AceContainer类的初始化逻辑。主要功能包括:1)通过ContainerScope管理容器作用域,确保线程安全隔离;2)根据前端类型(声明式JS/非声明式)进行差异化初始化处理;3)非声明式前端立即调用InitializeFrontend()进行初始化。关键设计点在于解决UI线程依赖问题,通过延迟初始化声明式前端来保证线程安全,同时优化资源使用。该机制体现了框架对多前端类型和复杂线程模型的精细控制能力。
2025-10-24 17:33:29
108
原创 HarmonyOS ArkUI框架中AceContainer类的成员变量定义
该摘要介绍了HarmonyOS ArkUI框架中AceContainer类的核心功能与设计特点。作为UI实例的管理中枢,AceContainer包含9大功能模块:1)核心组件管理;2)资源系统;3)窗口管理;4)卡片支持;5)状态管理;6)事件处理;7)配置扩展;8)线程安全控制;9)扩展能力。其创新设计体现在多实例隔离、精细资源管理、事件处理机制和动态配置更新等方面,支持主窗口、子窗口和卡片等多种UI形态,并通过10+个互斥锁确保线程安全。该框架展现了华为在跨设备UI领域的技术深度。
2025-10-24 17:22:33
507
1
原创 鸿蒙OS 生命周期中调用的函数流程图
HarmonyOS的UIAbility生命周期函数定义了应用从创建到销毁的完整流程。Stage模型下主要包含6个核心函数:onCreate初始化全局资源;onWindowStageCreate加载UI内容;onForeground处理界面可见时的恢复操作;onBackground释放资源并暂停任务;onWindowStageDestroy清理UI资源;onDestroy进行最终资源释放。这些函数覆盖了应用启动、运行、切换和销毁的全过程,开发者需合理利用各阶段进行资源管理和状态维护,特别是onBackgrou
2025-10-24 15:36:01
161
原创 触发页面的 JS 代码加载和根组件更新
本文解析了HarmonyOS ArkUI框架中的loadCallback回调函数,该函数在异步加载JS/ArkTS页面资源后触发JS代码加载和根组件更新。函数通过WeakPtr弱引用JS引擎实例避免内存泄漏,接收页面路径、页面实例和主页面标记三个参数,执行时先加载JS代码再更新根组件,实现从资源加载到UI渲染的完整流程。作为资源加载与JS执行的关键桥梁,loadCallback是ArkUI框架实现页面异步渲染的重要组成部分。
2025-10-23 19:36:58
312
1
原创 TextComponent(文本组件描述)与 FrameNode(渲染节点)的关联
本文分析了HarmonyOS ArkUI中TextComponent与FrameNode的关联机制。TextElement作为中间层连接两者,通过Init()方法完成组件绑定、FrameNode创建及属性同步。TextComponent存储文本属性(内容、样式等),TextElement负责将这些属性转换为FrameNode可用的渲染参数并维护双向引用。当属性变化时,Update()方法触发同步更新并标记渲染节点为"脏"以重绘。这种分层设计实现了文本定义与渲染的解耦,提高了框架的灵活性和
2025-10-23 18:05:07
77
原创 鸿蒙的声明式 UI转换为 JSView
摘要:HarmonyOS声明式UI通过JSView树与Component树的一一映射实现高效渲染机制。JSView作为JS层UI描述载体,存储元素结构、样式和交互逻辑;其派生类(如JSText、JSGrid)实现组件原子化特性。JsiDeclarativeEngine将JSView树转换为原生Component树,每个JSView节点对应特定Component类。这种分层设计实现描述与渲染解耦,支持高效差异更新和跨平台适配,是"声明式描述→高效渲染"的核心链路。
2025-10-22 15:53:01
132
1
原创 鸿蒙 HarmonyOS 应用框架中前端开发模式或应用类型的分类
摘要:FrontendType枚举类用于标识鸿蒙ArkUI框架中的前端开发模式类型,包含7种枚举值(如JSON、JS、ETS_CARD等),分别对应不同的开发范式和场景(传统JS开发、声明式开发、卡片应用等)。框架通过该类型适配不同的解析器、渲染管线和运行时环境,实现资源加载、生命周期管理和开发范式隔离。该设计支持多种开发方式在统一框架下高效运行,满足从简单JSON配置到复杂ArkTS声明的各类需求。
2025-10-21 14:23:34
197
原创 PreloadAceModuleWorker 方法的核心功能
摘要:该代码是JsiDeclarativeEngineInstance类的PreloadAceModuleWorker方法,用于在Worker线程中预加载ArkUI框架的核心模块。主要功能包括:标记Worker模式、初始化ArkTS运行时环境、关联原生引擎、创建局部作用域、注册字符串缓存表、预加载视图组件和枚举类型,以及注入原生模块调用接口。该方法通过预先加载必要资源,确保Worker线程能够高效执行ArkUI相关脚本,并实现与原生引擎的交互,是ArkUI框架支持多线程协作的关键初始化步骤。
2025-10-21 11:27:31
82
tinyxml2配套源码
2016-06-27
国产8051模拟器
2016-09-10
python抓取天气并分析 实例源码
2017-08-28
胶囊模型的代码
2018-02-02
书《深度学习》
2017-03-13
开源鸿蒙4.0不能进入桌面的补丁
2024-03-17
开源鸿蒙 4.0 RK3566开发板配置
2024-03-17
实现numpy的C++库扩展
2019-11-24
svm_hog_data.rar
2020-03-02
python web py入门配套源代码
2018-02-23
webpy演示例子1
2018-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅