构建一个 PyQt6 地震数据实时监测系统,重点是:
GUI 使用 PyQt6。实时波形绘图建议优先使用 pyqtgraph,原因:
如果必须完全 Qt 原生,可用 QPainter 自绘波形控件:
因此建议:第一版用 pyqtgraph 快速建立稳定实时显示;核心数据层保持独立,后续可把 WaveformView 替换为 QPainter 原生控件。
seisrt/
app/ # 应用入口、启动流程
gui/ # PyQt6 界面层
core/ # 实时数据核心:SeedLink、缓冲、数据模型
algorithms/ # 检测、拾取、定位、震级算法
storage/ # 事件保存、配置保存、波形写出
services/ # 后台服务编排,如监测会话、报警服务
resources/ # 图标、样式、资源
configs/ # 默认配置
docs/ # 设计文档
tests/ # 单元测试
SeedLinkWorker 后台线程
↓ trace
TraceQueue / Qt Signal
↓
StreamBuffer / RingBuffer
↓
Detector 检测模块
↓
WaveformView 实时显示
↓
EventStore 保存事件和日志