# AnningTools **Repository Path**: night_wish/anning-tools ## Basic Information - **Project Name**: AnningTools - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-03 - **Last Updated**: 2026-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 安宁工具(AnNing Tools) > 一款本地优先的桌面效率工具箱,基于 **Python + PyQt6** 构建,莫兰迪雾绿视觉风格。 > 25 个工具全部为真实实现(无占位),数据仅存本机、无需联网。 ![登录页](docs/screenshots/01-login.png) ![注册页](docs/screenshots/08-register.png) ![工具首页](docs/screenshots/02-home.png) --- ## ✨ 特性 - 🖥️ **无边框窗口**:自绘标题栏,支持拖拽移动、边缘缩放,窗口尺寸自动记忆 - 🎨 **统一设计系统**:莫兰迪雾绿 + 奶油米白配色,下拉框 / 复选框 / 数值框全工具一套样式 - 🔌 **本地优先**:账号与所有工具数据仅存本机(SQLite + 注册表设置),不上传任何服务器 - 🧰 **25 个真实工具**:开发调试、图片处理、格式转换、日常效率四大分类 - 📦 **一键打包**:Windows / macOS 脚本齐备,产出免安装的绿色文件夹 --- ## 🧰 工具一览 ### 🔧 开发工具(13) | 工具 | 功能 | |---|---| | JSON 格式化 | 格式化 / 压缩 / 语法校验,错误定位到行列 | | JWT 解码器 | header / payload 一键解码,过期时间校验 | | 时间戳转换 | Unix 秒 / 毫秒与日期双向转换,本地 / UTC 显示 | | 哈希计算 | MD5 / SHA-1 / SHA-256 / SHA-512 本地实时计算 | | UUID / 雪花 ID | UUID v4 批量生成,雪花 ID 模拟与结构解析 | | URL / Base64 | URL 编码解码、文本 Base64 互转,UTF-8 安全 | | Nginx 格式化 | 花括号层级自动缩进对齐,注释保留,括号校验 | | 正则表达式 | 实时匹配高亮,捕获组展示,支持替换预览 | | Cron 生成器 | Quartz / 标准双格式,常用预设一键生成 | | SQL 格式化 | 关键字换行对齐,逗号分行,大小写切换 | | 文本 Diff | 按行对比两段文本,新增 / 删除高亮显示 | | Mermaid 图表 | 时序图 / 流程图 / 类图代码编辑,复制后于浏览器渲染 | | Markdown 编辑器 | 源码 / 预览实时切换,代码高亮,导出 | ![JSON 格式化](docs/screenshots/03-json.png) ### 🖼️ 图片处理(3) | 工具 | 功能 | |---|---| | 图片压缩 | 质量 / 尺寸可调,压缩 PNG / JPG / WebP | | 格式转换 | PNG / JPG / WebP / GIF 互转,保留透明通道 | | 二维码生成 | 文本 / 链接生成二维码,可调容错与尺寸 | ### 🔄 格式转换(2) | 工具 | 功能 | |---|---| | 单位换算 | 长度 / 重量 / 温度 / 数据多单位换算 | | 图片转换器 | JPG / JPEG / PNG / WebP / BMP / JP2 / TIFF 多格式互转 | ![图片转换器](docs/screenshots/06-img-converter.png) ### ✨ 日常工具(7) | 工具 | 功能 | |---|---| | 颜色拾取器 | HEX / RGB / HSL 互转与复制,实时预览 | | 密码生成器 | 可定制长度与字符集的安全密码生成 | | 文本字数统计 | 中英文字符 / 词数 / 行数实时统计 | | 时区转换 | 全球主要时区时间对照与换算 | | 表情符号查询 | 按关键词检索 Emoji,一键复制 | | Excel 数据合并 | 上传两个 Excel,按关联字段合并并导出所需列 | | PDF 转换器 | 上传 PDF,转换为 Word / PPT / 图片 / 长图 / 文本 / HTML | ![PDF 转换器](docs/screenshots/04-pdf.png) ![Excel 数据合并](docs/screenshots/05-excel-merge.png) ![Markdown 编辑器](docs/screenshots/07-markdown.png) --- ## 🛠️ 技术栈 | 层 | 选型 | |---|---| | UI 框架 | PyQt6 6.11(无边框窗口自绘 + QSS 主题) | | 图像处理 | Pillow | | 表格数据 | pandas + openpyxl + xlrd | | PDF 引擎 | PyMuPDF(渲染 / 文本提取)+ pdf2docx(→Word)+ python-pptx(→PPT) | | 其他 | qrcode(二维码)、markdown(渲染) | | 本地存储 | SQLite(标准库 sqlite3)+ QSettings(窗口 / 登录偏好) | **设计系统**:莫兰迪雾绿 `#8FA890` · 奶油底 `#F7F3EC` · 卡片白 `#FFFDF8` · 边框 `#ECE5D8`; 字体优先 Sarasa Gothic SC,Windows 下自动降级微软雅黑。 --- ## 📁 项目结构 ``` AnningTools/ ├─ main.py # 应用入口:日志初始化、窗口路由(登录 → 注册 → 首页 → 工具) ├─ app/ │ ├─ login.py # 登录页(记住我 / 密码可见切换) │ ├─ register.py # 注册页 │ ├─ home.py # 工具首页(分类侧栏 + 工具卡片 + 搜索) │ ├─ tool.py # 工具窗口:统一外壳 + 25 个工具的具体实现 │ ├─ tools_data.py # 工具目录数据(名称 / 图标 / 描述 / 分类) │ ├─ widgets.py # 通用控件:无边框窗口 Mixin、按钮、输入框、开关等 │ ├─ theme.py # 设计系统 Token(颜色 / 尺寸 / 圆角 / 字体) │ ├─ icons.py # 内置矢量图标 │ ├─ controls.py # 窗口控制按钮(最小化 / 最大化 / 关闭) │ └─ db.py # SQLite 账号库(sha256 + salt,本机存储) ├─ data/ │ └─ toolhub.db # 本地账号数据库(首次启动自动建表) ├─ log/ # 运行日志(启动 / 异常) ├─ docs/screenshots/ # README 界面截图 ├─ requirements.txt # Python 依赖清单 ├─ run.bat / run.sh # 开发运行(Windows / macOS·Linux) ├─ build_win.bat # Windows 打包(PyInstaller one-folder) ├─ build_mac.sh # macOS 打包(产出 .app) └─ clean.bat / clean.sh # 清理构建产物与缓存 ``` --- ## 🚀 快速开始 ```bash # 1. 安装依赖(建议 Python 3.13) pip install -r requirements.txt # 2. 运行 python main.py # Windows 下也可直接双击 run.bat ``` 首次启动自动创建本地数据库,注册一个账号即可登录使用(仅存本机)。 --- ## 📦 打包与脚本说明 | 脚本 | 平台 | 作用 | |---|---|---| | `run.bat` / `run.sh` | Win / Mac | 开发运行(mac 自动创建虚拟环境并装依赖) | | `build_win.bat` | Windows | 打包为 `dist\安宁工具\安宁工具.exe`,整个文件夹免安装分发;支持 `lite` 参数精简体积 | | `build_mac.sh` | macOS | 打包为 `dist/安宁工具.app`(须在 macOS 上运行);支持 `lite` 参数 | | `clean.bat` / `clean.sh` | 双平台 | 清理 `build/`、`dist/`、`__pycache__`、日志等;默认先预览再确认,加 `-y` / `--force` 跳过确认 | > `lite` 精简模式:排除 pandas / numpy,体积大幅减小,但「Excel 数据合并」工具不可用。 > 清理脚本红线:永远不会删除 `app/` 源码、`data/toolhub.db`(用户数据)与脚本自身。 --- ## 📄 说明 - 本项目为本地单机应用,所有计算(哈希、转换、合并等)均在本地完成; - PDF → Word 使用 [pdf2docx](https://github.com/dothinking/pdf2docx)(GPL-3.0),个人与内部使用无限制,闭源分发需注意合规; - 扫描版 PDF(无文字层)暂不支持 OCR,工具会自动检测并提示改转图片 / 长图。