# 图标制作软件 **Repository Path**: deepin20/Icon-Maker ## Basic Information - **Project Name**: 图标制作软件 - **Description**: Icon Maker – 图标制作软件: 一款基于 PyQt5 的轻量级矢量图标编辑器,支持多种绘图工具、图层管理、撤销/重做,并可将项目导出为 PNG / ICO 格式。专为统信 UOS、Deepin 及主流 Linux 桌面环境设计,同时也兼容 Windows / macOS。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-14 - **Last Updated**: 2026-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎨 Icon Maker – 图标制作软件 > 一款基于 PyQt5 的轻量级矢量图标编辑器,支持多种绘图工具、图层管理、撤销/重做,并可将项目导出为 PNG / ICO 格式。 > 专为统信 UOS、Deepin 及主流 Linux 桌面环境设计,同时也兼容 Windows / macOS。 ![Icon Maker 主界面](docs/screenshot.png) *(如果尚未截图,请自行添加一张展示主窗口的图片)* --- ## ✨ 主要功能 - **绘图工具**:矩形、椭圆、直线、画笔(自由路径)、文字、吸管取色 - **颜色与线宽**:实时调整描边/填充颜色、线宽 - **图层管理**:新建、删除、上移/下移、显示/隐藏、重命名图层,支持拖拽排序 - **属性编辑**:选中图形后可直接在侧边栏修改位置、大小、颜色、字体等属性,所有修改均可撤销 - **撤销/重做**:基于 `QUndoStack` 的强大撤销系统,支持图形添加/删除、属性修改 - **项目保存/加载**:以 `.icoproj` JSON 格式保存整个场景,便于后续编辑 - **导出图像**:导出为 PNG(透明背景)或 ICO(多尺寸图标) - **界面特色**:网格辅助、缩放/平移、多文档标签式停靠面板 --- ## 📦 安装与运行 ### 环境要求 - Python 3.6+ - PyQt5 - Pillow(可选,用于 ICO 导出) ### 克隆或下载项目 ```bash git clone https://github.com/your-username/icon-maker.git cd icon-maker ``` ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 启动软件 ```bash python run.py ``` --- ## 🚀 使用指南 ### 基本操作 1. **选择工具**:点击左侧“工具”面板中的按钮(选择、吸管、矩形、椭圆、直线、画笔、文字)。 2. **绘制图形**:在画布上拖拽即可绘制对应形状。 3. **选择与移动**:使用“选择”工具单击图形,可拖动移动或通过属性面板调整。 4. **编辑属性**:选中图形后,右侧“属性”面板会显示可修改的参数(位置、大小、颜色等)。 5. **图层管理**:右侧“图层”面板显示所有图形,可拖拽调整顺序、点击眼睛图标切换显隐、右键菜单删除/重命名。 6. **吸管取色**:使用吸管工具点击画布上的图形,可拾取其描边和填充颜色,并自动应用到后续绘制中。 7. **文字工具**:点击画布任意位置弹出文字输入框,双击已有文字可重新编辑。 ### 文件操作 - **新建项目**:`Ctrl+N` 或菜单“文件 → 新建” - **打开项目**:`Ctrl+O` 或菜单“文件 → 打开...” - **保存项目**:`Ctrl+S` 或菜单“文件 → 保存”(保存为 `.icoproj` 格式) - **另存为**:`Ctrl+Shift+S` - **导出 PNG**:菜单“文件 → 导出 → 导出为PNG...” - **导出 ICO**:菜单“文件 → 导出 → 导出为ICO...”(需要 Pillow) > 💡 **提示**:保存项目时,**路径(自由曲线)** 图形暂不支持序列化,导出时会被忽略,建议使用基本几何形状组合。 --- ## 🗂 项目结构 ``` icon-maker/ ├── run.py # 启动脚本 ├── requirements.txt # 依赖清单 ├── setup.py # 安装脚本(可选) ├── README.md # 本文件 ├── docs/ │ ├── user_guide.md # 用户手册 │ └── developer_guide.md # 开发者文档 ├── icon_maker/ # 主程序包 │ ├── main.py # 程序入口(高DPI适配) │ ├── main_window.py # 主窗口类 │ ├── models/ # 数据模型(暂无,未来扩展) │ ├── controllers/ # 控制器(命令栈、图层管理、工具管理) │ ├── widgets/ # 自定义控件 │ │ ├── canvas.py # 绘图画布(核心) │ │ ├── tool_panel.py # 工具面板 │ │ ├── layer_widget.py # 图层管理器 │ │ └── property_editor.py # 属性编辑器 │ ├── utils/ # 工具函数 │ │ ├── exporter.py # PNG/ICO/SVG 导出 │ │ ├── project_io.py # 项目序列化(JSON) │ │ └── image_processor.py # 图像处理辅助 │ ├── assets/ # 资源文件(图标、样式) │ └── ui/ # Qt Designer 界面文件(.ui/.py) ├── tests/ # 单元测试 └── error.log # 运行时错误日志 ``` --- ## 🛠 技术栈 - **GUI 框架**:PyQt5 - **图像处理**:Pillow(仅 ICO 导出需要) - **撤销机制**:Qt 的 `QUndoStack` - **项目存储**:JSON - **矢量导出**:SVG(通过 `QSvgGenerator`) - **平台支持**:跨平台(Linux / Windows / macOS) --- ## 🤝 贡献指南 欢迎提交 Issue 或 Pull Request! 1. Fork 本仓库 2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启一个 Pull Request 请确保代码遵循 PEP8 规范,并为新功能编写测试。 --- ## 📄 许可证 本项目采用 **GNU General Public License v3.0** 开源协议。详见 [LICENSE](LICENSE) 文件。 --- ## 📧 联系方式 - 项目维护者:[您的名字/组织] - 邮箱:your-email@example.com - 项目主页:https://github.com/your-username/icon-maker --- ## 🙏 致谢 - 感谢 Qt 和 PyQt 社区提供的强大工具集。 - 感谢所有测试和使用本软件的用户。 --- *Happy Icon Making! 🎉* ``` --- ### 说明 - 请将 `git clone` 地址替换为您的实际仓库地址。 - 如果还没有截图,可以运行软件后截一张主窗口图片,命名为 `screenshot.png` 放入 `docs/` 目录,并相应更新链接。 - 可根据实际情况调整联系方式、许可证等细节。 - 若需要,可添加更详细的功能演示 GIF 或视频链接。