QR Toolkit 是一款开源的、跨平台的二维码工具箱,提供二维码的生成、扫描、批量处理和模板管理等功能。无论是个人日常使用,还是企业批量处理,QR Toolkit 都能为您提供帮助,同时该项目还可作为Python编程学习者的开发实战项目。
- 二维码生成 - 支持文本、URL、WiFi、电子名片、电子邮件、电话、地理位置等十余种类型
- 高级编辑 - 支持自定义颜色、渐变效果、Logo添加及Logo缩放比例调节
- 二维码扫描 - 支持图片文件扫描和摄像头实时扫描,自动识别二维码位置
- 批量处理 - 批量生成二维码、批量扫描图片中的二维码
- 模板管理 - 保存常用配置为模板,快速复用
- 历史记录 - 自动保存生成记录,支持搜索、加载、删除、导出
- 数据库支持 - 使用SQLite存储二维码数据和模板
- 多格式导出 - 支持PNG、JPEG、SVG、PDF、GIF、BMP等多种输出格式
- 跨平台 - 支持Windows、macOS、Linux
- Python 3.8 或更高版本,推荐 3.13.0
- PySide6 6.10.1 或更高版本
- uv 包管理器(推荐)或 pip
# 克隆仓库
git clone https://github.com/ICodeWR/qrcode_toolkit.git
或
git clone https://gitee.com/ICodeWR/qrcode_toolkit.git
cd qrcode_toolkit
# 使用 uv 创建虚拟环境并安装依赖
uv venv
uv pip install -e .
# 启动应用
uv run python main.py# 克隆仓库
git clone https://github.com/ICodeWR/qrcode_toolkit.git
或
git clone https://gitee.com/ICodeWR/qrcode_toolkit.git
cd qrcode_toolkit
# 创建虚拟环境(可选)
python -m venv venv
# source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
# 安装依赖
pip install -e .
# 启动应用
python main.py| 生成界面 | 扫描界面 | 模板管理 |
|---|---|---|
![]() |
![]() |
![]() |
- 在"生成"选项卡中输入要编码的数据
- 选择二维码类型(自动识别或手动选择)
- 调整二维码参数:
- 版本:1-40,0表示自动
- 纠错级别:L(7%)、M(15%)、Q(25%)、H(30%)
- 模块大小:1-50像素
- 边框大小:0-10模块
- 设置颜色:
- 前景色、背景色
- 可选线性/径向渐变
- 添加Logo(可选):
- 选择Logo图片
- 调节缩放比例(5%-50%,建议15%-30%)
- 添加标签和备注(可选)
- 点击"生成二维码"按钮
- 切换到"扫描"选项卡
- 选择"扫描文件"
- 添加图片文件(PNG、JPG、BMP等)
- 点击"开始扫描"
- 查看扫描结果,支持保存为CSV/JSON/TXT
- 切换到"扫描"选项卡
- 选择"摄像头扫描"
- 选择可用摄像头
- 点击"开始扫描"
- 将二维码对准摄像头,自动识别并显示结果
- 打开"工具 → 批量处理器"
- 选择"批量生成"选项卡
- 导入CSV文件或直接输入文本数据(每行一个)
- 设置输出目录、文件名前缀、输出格式
- 配置二维码参数(同单次生成)
- 点击"开始"批量生成
- 打开"工具 → 批量处理器"
- 选择"批量扫描"选项卡
- 选择包含二维码图片的文件夹
- 设置输出文件路径
- 点击"开始"批量扫描
- 自动将结果保存为CSV文件
- 打开"工具 → 模板管理器"
- 新建模板:配置好二维码参数后,点击"保存为模板"
- 应用模板:在模板管理器中选择模板,点击"应用"
- 编辑模板:修改已有模板的配置
- 删除模板:移除不再需要的模板
- 切换到"历史"选项卡
- 查看所有生成的二维码记录
- 加载:双击记录或选择后点击"加载"
- 删除:选择记录后点击"删除"
- 清空:删除所有历史记录
- 导出:将历史记录导出为JSON文件
qrcode_toolkit/
├── core/ # 核心功能模块
│ ├── database.py # 数据库管理
│ ├── engine.py # 二维码生成引擎
│ ├── models.py # 数据模型
│ └── scanner.py # 二维码扫描器
├── gui/ # 图形界面模块
│ ├── main_window.py # 主窗口
│ ├── batch_processor.py # 批量处理器
│ ├── template_editor.py # 模板编辑器
│ ├── template_manager.py # 模板管理器
│ └── widgets.py # 自定义组件
├── utils/ # 工具模块
│ └── constants.py # 常量定义
├── tests/ # 单元测试
│ ├── test_database.py
│ ├── test_engine.py
│ └── ...
├── resources/ # 资源文件
│ ├── icon.png
│ └── splash.png
├── main.py # 应用入口
├── pyproject.toml # 项目配置
└── README.md # 本文档
| 组件 | 技术 | 用途 |
|---|---|---|
| GUI框架 | PySide6 (Qt6) | 跨平台图形界面 |
| 二维码生成 | qrcode, segno | 标准二维码、SVG输出 |
| 二维码扫描 | pyzbar, OpenCV | 图片/摄像头二维码识别 |
| 图像处理 | Pillow | Logo合成、图像处理 |
| 数值计算 | NumPy | 图像矩阵运算 |
| 数据库 | SQLite3 | 本地数据存储 |
| 项目管理 | uv | 快速依赖安装 |
| 测试框架 | pytest | 单元测试 |
| 检查工具 | mypy | 静态检查 |
# 克隆仓库
git clone https://github.com/ICodeWR/qrcode_toolkit.git
cd qrcode_toolkit
# 安装uv(如果尚未安装)
pip install uv
# 创建虚拟环境并安装开发依赖
uv venv
uv pip install -e ".[dev]"
# 安装pre-commit钩子(可选)
pre-commit install# 运行所有测试
uv run pytest
# 运行特定测试文件
uv run pytest tests/test_database.py
# 带覆盖率报告
uv run pytest --cov=core --cov=gui --cov-report=html# 构建源码包和wheel包
uv build
# 产物位于 dist/ 目录- 遵循 PEP 8 编码规范
- 使用类型注解增强代码可读性
- 所有公共函数和类必须包含文档字符串
- 提交前确保测试全部通过
- 发布:首个正式版本
- 功能:二维码生成、扫描、批量处理、模板管理、历史记录
- 界面:完整的主窗口界面、菜单栏、工具栏、停靠窗口
欢迎贡献代码、报告问题或提出新功能建议!
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature) - 提交您的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
请尊重所有贡献者和用户。我们致力于营造一个开放、友好的社区环境。
本项目采用 MIT License 开源协议。
- 作者:码上工坊
- 微信公众号:码上工坊
- 项目主页:
- 问题反馈:Issues


