新增统计栏/过滤/预设/深色主题/托盘/DPI适配/发送文件/RTS-DTR,修复配置保存与弹窗置顶

This commit is contained in:
2026-08-11 10:42:16 +08:00
parent b43249fdf8
commit 5a0341699f
3 changed files with 496 additions and 67 deletions
+43 -24
View File
@@ -1,31 +1,50 @@
# 修改事项
以下为本次相对于 e9b3100(初始提交)的改动记录。
以下为相对于上一提交(b43249f)的改动记录。
## 1. 接收区字体大小:Ctrl + 鼠标滚轮调整
- 新增 `RecvEdit` 类(继承 `QPlainTextEdit`),重写 `wheelEvent`
按住 **Ctrl + 滚轮** 即可放大/缩小接收区字体(范围 8~40pt)。
- 接收区改用 `RecvEdit` 并通过 `QFont` 设置字体,替换原来的 stylesheet 方式。
## 1. 收发统计栏
- 底部新增统计标签,实时显示 **TX/RX 的字节数与帧数**
## 2. 导出/导入配置扩展
- `export_config` 现在经 `collect_config` 导出以下内容:
- 接收设置:显示格式(ASCII/HEX)、时间戳、INFO 勾选;
- 发送设置:内容格式(文本/HEX)、回车发送、回车换行、定时发送及间隔;
- 应答设置:自动应答、解析格式、回应格式勾选;
- 字体大小、应答规则、批量发送。
- **保存日志(chk_save_log)不参与导出/导入**,避免日志目录误恢复。
- `import_config` 通过 `apply_config` 统一恢复上述设置,兼容旧的 `reply_rules` / `batch_rows` 配置文件格式。
## 2. 接收区右键菜单
- 新增 `RecvEdit.contextMenuEvent`:复制、全选、**另存为**、清空。
- "另存为"将接收区全部内容写入文本文件。
## 3. 关闭自动保存、重启自动恢复配置
- `MainWindow` 持有串口/TCP/UDP 三个面板引用
- `closeEvent` 时把各面板配置写入同目录 `app_config.json`
- 启动时自动读取并恢复,无需每次手动导入配置。
## 3. 发送区 Ctrl+滚轮调字号
- `SendEdit` 支持 Ctrl+滚轮调整字号(8~40pt),字号随配置持久化
## 4. TCP 服务端发送改为广播所有客户端
- `NetPanel.actual_send` 服务端分支不再限定于下拉框选中的客户端,改为发送给**所有已连接客户端**
## 4. 关键字过滤
- 接收设置组新增"过滤"勾选 + 关键字输入框:启用后只显示包含关键字的行
- 过滤状态与关键字随配置保存/恢复。
## 5. 窗口置顶功能
- 新增顶栏"窗口置顶"勾选框
- 使用 Windows `SetWindowPos` API(Win32)调整 z 序实现置顶,无闪烁;
为 API 声明了 `argtypes` 防止 64 位句柄被截断,API 失败时回退到 `setWindowFlag`
- 置顶状态随 `app_config.json` 自动保存/恢复。
## 5. 发送历史持久化
- 发送历史(最近 200 条)随 `app_config.json` 保存,重启后可用 ↑↓ 键继续浏览
## 6. 多套配置预设(Profile
- 顶栏"预设"下拉 + "保存预设/删除预设"按钮,可一键切换整套配置。
- 预设保存于 `network_debugger_profiles.json`
## 7. 深色主题切换
- 顶栏"深色模式"勾选框,基于 Fusion 风格切换亮/暗色板,状态持久化。
## 8. DPI 适配
- 启动时设置高分屏缩放舍入策略 `PassThrough`,避免高分屏模糊。
## 9. 串口 RTS/DTR 控制 + 发送文件
- 串口面板新增 RTS/DTR 勾选,打开串口时生效,随配置保存。
- 新增"发送文件"按钮:读取文件按 4KB 分块发送,避免阻塞界面。
## 10. 接收区性能优化
- 接收区改为**批量插入 + 定时(120ms)刷新**,高频率收发不再逐行刷新导致卡顿。
## 11. 窗口置顶修复:弹窗继承置顶
- 新增 `inherit_topmost()`:主窗口置顶时,批量发送/应答规则/自动应答弹窗自动带上置顶标志,避免被主窗口遮住。
- 修复 `BatchSendDialog` 未传 `parent` 导致无法继承置顶的问题。
## 12. 最小化到托盘
- 顶栏"最小化到托盘"勾选:勾选后显示托盘图标,**最小化或关闭**均隐藏到托盘,托盘菜单可"显示主界面/退出"。
- 修复托盘图标未调用 `show()` 导致功能无效的问题。
## 13. 配置保存修复与自动保存
- 修复残留隐藏 `app_config.json` 被锁定导致保存 `PermissionError`(静默失败)的问题。
- 新增每 30 秒自动保存兜底,异常退出也不易丢配置。
- 删除单实例锁,**默认支持多开**;`app_config.json` 加入 `.gitignore`