实时语音转写:手机端采集语音 → 后端识别生成文字 → PC端通过socket.io监听text_update事件实时接收,并逐句显示在Qt文本编辑区(QTextEdit),支持光标跟踪与暂存。
文章生成与保存:PC端可对转写文本进行编辑、分段、标题设定,点击“保存”调用socket.emit('save_article')将完整文章上传云端(附时间戳、用户ID)。
历史管理:启动时通过socket.emit('fetch_history')获取文章列表(JSON格式),以QListView展示;支持按标题/日期检索。
操作扩展:
修改:双击列表项加载内容至编辑区,保存时覆盖云端原文档(update_article事件)。
下载:选定文章,调用socket.emit('download_article'),以QFileDialog保存为本地.txt/.docx。
删除:触发delete_article事件,列表即时刷新(通过article_deleted广播同步)。
通信层:集成socket.io-cpp库或Qt WebSocket模块,与后端建立长连接,通过JSON消息收发实现实时字幕推送和文章数据同步。
UI层:采用QML声明式编程构建界面,利用其高效的渲染引擎和动画支持。使用TextArea和ListView组件展示字幕流和历史文章列表,通过ListModel管理数据。
文本处理:使用QTextDocument处理富文本,集成diff-match-patch库计算版本差异,SQLite本地存储文章和索引,全文搜索使用FTS5扩展。导出功能通过QTextDocumentWriter实现。
多线程:将Socket.IO网络操作和SQLite查询置于QThread中,通过信号槽与QML前端通信,避免阻塞主线程。