# notebook **Repository Path**: lhLH1/notebook ## Basic Information - **Project Name**: notebook - **Description**: 笔记本项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-08 - **Last Updated**: 2025-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # notebook #### 介绍 笔记本项目 #### 软件架构 软件架构说明 **项目总结:简易文本编辑器** 本项目基于Qt框架实现了一个功能丰富的简易文本编辑器,支持基本的文件操作、编码切换、光标跟踪、文本缩放等功能。以下是核心功能及实现要点的总结: **核心功能模块 文件操作** 打开文件:通过对话框选择文件,支持指定编码格式读取内容。 保存文件:支持覆盖保存和另存为,使用当前编码格式写入文件。 关闭文件:关闭前提示保存未保存的修改,确保数据安全。 **编码切换** 通过下拉框(QComboBox)动态切换文件编码(如UTF-8、GBK等),实时重新加载文件内容。 **光标与高亮** 实时光标位置:显示当前行号与列号,随光标移动更新。 当前行高亮:通过QTextEdit::ExtraSelection实现当前行背景高亮和下划线。 **文本缩放** 快捷键缩放:Ctrl+Shift+=放大,Ctrl+Shift+-缩小。 滚轮缩放:按住Ctrl键时滚动滚轮调整字体大小。 ** 快捷键支持** 常用操作快捷键:Ctrl+O打开、Ctrl+S保存。 错误处理:通过QMessageBox提示保存确认。 ** 关键技术实现** 事件重写:继承QTextEdit自定义myTextEdit,重写wheelEvent、keyPressEvent和keyReleaseEvent实现滚轮缩放。 编码处理:使用QTextStream设置编码格式,支持多语言文本读写。 布局管理:通过QHBoxLayout和QVBoxLayout实现控件自适应窗口缩放。 信号与槽:连接cursorPositionChanged信号实时更新光标位置,组合框索引变化触发编码切换。 **代码亮点** 高亮当前行:通过QTextEdit::ExtraSelection动态修改背景色,提升用户体验。 多编码支持:灵活切换编码,适应不同文本文件需求。 健壮的关闭逻辑:通过QMessageBox防止误操作导致数据丢失。 **总结** 本项目实现了一个基础但功能完备的文本编辑器,涵盖了文件操作、编码管理、界面交互等核心功能。通过自定义控件和合理利用Qt的信号槽机制,展示了良好的模块化设计。后续可进一步优化异常处理、性能及用户体验,增加查找替换、多标签页等高级功能,提升实用性。