Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
Oil_Level_Recognition_System
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Oil_Level_Recognition_System
Commits
902c3f0b
Commit
902c3f0b
authored
Nov 25, 2025
by
Yuhaibo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
123
parent
dfe029bb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
112 deletions
+0
-112
README.md
handlers/modelpage/README.md
+0
-112
No files found.
handlers/modelpage/README.md
View file @
902c3f0b
...
...
@@ -5,114 +5,3 @@
**已完成**
:成功将
`app.py`
第1000行后的模型管理功能代码独立出来,并按照功能分为不同的文件。
## 创建的文件结构
```
detection/handlers/modelpage/
├── __init__.py # 模块初始化文件
├── model_sync_handler.py # 模型同步处理器
├── model_signal_handler.py # 模型信号处理器
├── model_set_handler.py # 模型集管理处理器
├── model_load_handler.py # 模型加载处理器
├── model_settings_handler.py # 模型设置处理器
└── README.md # 说明文档
```
## 功能模块划分
### 1. ModelSyncHandler (模型同步处理器)
**文件**
:
`model_sync_handler.py`
**功能**
: 处理模型管理面板与模型设置之间的同步
-
`_setupModelSync()`
: 建立模型管理面板与模型设置的同步
-
`refreshModelSync()`
: 刷新模型同步
-
`getModelPanelModels()`
: 获取模型管理面板中的所有模型信息
-
`getModelPanelModelByPath()`
: 根据路径获取模型信息
### 2. ModelSignalHandler (模型信号处理器)
**文件**
:
`model_signal_handler.py`
**功能**
: 处理模型相关的各种信号事件
-
`_onCreateModel()`
: 处理创建模型信号
-
`_onBrowseModelFile()`
: 浏览模型文件
-
`_onBrowseConfigFile()`
: 浏览配置文件
-
`_onBrowseClassesFile()`
: 浏览类别文件
-
`_onRunModelTest()`
: 运行模型测试
-
`_onBrowseTestFile()`
: 浏览测试文件
-
`_onBrowseSavePath()`
: 浏览保存路径
### 3. ModelSetHandler (模型集管理处理器)
**文件**
:
`model_set_handler.py`
**功能**
: 处理模型集的添加、编辑、删除、加载等功能
-
`_onAddModelSet()`
: 添加新模型到模型集
-
`_onEditModelSet()`
: 编辑模型集
-
`_onDeleteModelSet()`
: 删除模型集
-
`_onLoadModelSet()`
: 加载模型集到系统
-
`_browseModelFile()`
: 浏览模型文件
-
`_browseConfigFile()`
: 浏览配置文件
-
`_getFileSize()`
: 获取文件大小
-
`_saveNewModelToConfig()`
: 保存新模型到配置文件
### 4. ModelLoadHandler (模型加载处理器)
**文件**
:
`model_load_handler.py`
**功能**
: 处理各种类型模型的加载、状态管理等功能
-
`_loadModelToSystem()`
: 将模型加载到系统中
-
`_loadPyTorchModel()`
: 加载 PyTorch 模型
-
`_loadEncryptedModel()`
: 加载加密模型
-
`_loadONNXModel()`
: 加载 ONNX 模型
-
`_loadGenericModel()`
: 加载通用模型
-
`_saveModelLoadStatus()`
: 保存模型加载状态到配置
-
`getLoadedModels()`
: 获取已加载的模型列表
-
`isModelLoaded()`
: 检查模型是否已加载
-
`getModelLoadStatistics()`
: 获取模型加载统计信息
-
`showModelLoadStatistics()`
: 显示模型加载统计信息对话框
### 5. ModelSettingsHandler (模型设置处理器)
**文件**
:
`model_settings_handler.py`
**功能**
: 处理模型设置对话框和相关功能
-
`_onModelSettings()`
: 打开模型设置对话框
## 代码迁移详情
### 从 app.py 中删除的代码行数
-
**第1112-1152行**
: 模型同步功能 (40行)
-
**第1154-1246行**
: 模型信号处理功能 (92行)
-
**第1248-1516行**
: 模型集管理功能 (268行)
-
**第1518-1814行**
: 模型加载系统功能 (296行)
-
**第1816-2013行**
: 模型设置功能 (197行)
**总计删除**
: 约893行代码
### 保留在 app.py 中的代码
-
保留了模型同步相关的4个方法(1112-1152行),因为这些是基础功能
-
保留了页面切换和基础UI功能
-
保留了窗口关闭事件处理
## 优势
1.
**代码组织更清晰**
: 按功能模块分离,便于维护
2.
**职责单一**
: 每个处理器只负责特定功能
3.
**易于扩展**
: 新功能可以独立添加到对应处理器中
4.
**使用 Mixin 模式**
: 保持了原有的调用方式
5.
**无 Linter 错误**
: 所有文件通过了语法检查
## 技术实现
-
**Mixin 继承模式**
: 所有处理器都通过 Mixin 方式集成到 MainWindow
-
**统一初始化**
: 在
`__init__`
方法中统一初始化所有处理器
-
**保持接口一致**
: 原有的方法调用方式保持不变
-
**模块化设计**
: 每个功能模块独立,便于测试和维护
## 使用说明
所有功能已经成功迁移,原有的调用方式保持不变,因为使用了 Mixin 继承模式。例如:
```
python
# 这些调用方式保持不变
self
.
_setupModelSync
()
self
.
_onCreateModel
(
model_info
)
self
.
_onAddModelSet
()
self
.
_loadModelToSystem
(
model_name
,
model_params
)
self
.
_onModelSettings
()
```
## 总结
成功将
`app.py`
中第1000行后的模型管理功能代码(约893行)独立出来,按照功能分为5个不同的处理器文件,提高了代码的可维护性和可扩展性,同时保持了原有功能的完整性。
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment