镜像自地址
https://github.com/a13zhy/a13rollcall.git
已同步 2026-10-20 11:27:47 +08:00
Revise README for version 6.8 updates and features
Updated README to reflect changes in version 6.8, including migration to PyQt5, new features, and project structure.
这个提交包含在:
父节点
1c395c3a92
当前提交
555ba64f7a
238
README.md
238
README.md
@ -1,116 +1,152 @@
|
||||
# A13Rollcall V6.8|第六代A13引擎 PyQt重构版
|
||||
> 🎲 A13Rollcall V6.8|第六代A13抽取引擎|课堂点名抽背系统
|
||||
[](https://github.com/a13zhy/a13rollcall/stargazers)
|
||||
[](https://github.com/a13zhy/a13rollcall/fork)
|
||||
[](https://www.python.org/)
|
||||
[](https://github.com/a13zhy/a13rollcall/releases)
|
||||
[](#📄-开源许可)
|
||||
|
||||
🔥 **本地离线PyQt5 GUI点名抽背工具|零广告|零氪金|无捆绑|全部数据本地存储**
|
||||
> ⚠️ V6.8 由Tkinter迁移至PyQt5重构,现代化桌面窗口,Windows10/11体验大幅提升;**完全兼容V6.2旧版数据**,直接迁移旧班级文件即可使用。专为中小学课堂抽背、随机点名场景打造。
|
||||
|
||||
# a13rollcall
|
||||
> 🎲 A13Rollcall|第六代A13引擎 Tkinter课堂点名抽背神器
|
||||
|
||||
[](https://github.com/a13zhy/a13rollcall/stargazers)
|
||||
[](https://github.com/a13zhy/a13rollcall/fork)
|
||||
[](https://www.python.org/)
|
||||
[](https://github.com/a13zhy/a13rollcall/releases)
|
||||
[](#📄-开源许可)
|
||||
|
||||
🔥 **本地离线GUI点名工具|零广告|零氪金|无捆绑|纯本地运行**
|
||||
|
||||
> ⚠️ 本项目是 **Tkinter图形桌面程序**,运行弹出可视化窗口,**不是黑乎乎的控制台命令行工具!**
|
||||
|
||||
老师点名纠结半天选谁?
|
||||
学生上课开启摸鱼模式,内心疯狂祈祷「千万别点我」🙏。
|
||||
|
||||
交给自研**第六代A13抽签引擎**,把命运交给算法,拒绝主观偏心。
|
||||
随机点名、课堂抽背、悬浮快捷小浮窗、全套快捷键,课堂整活神器就位✨。
|
||||
老师上课点名反复纠结,怕偏心、怕重复;学生上课走神,寄希望于“不会抽到我”。交给**第六代A13智能抽取引擎**,算法接管抽签,消除主观偏好,兼顾公平与薄弱学生强化练习。
|
||||
|
||||
---
|
||||
|
||||
## 💥 课堂两大史诗级痛点,谁懂啊家人们
|
||||
- 👨🏫 **老师侧|点名精神内耗**
|
||||
每次提问疯狂纠结,点A怕偏心,点B刚点过,选择困难直接犯,点名十分钟,讲课五分钟。
|
||||
- 👩🎓 **学生侧|摸鱼侥幸玄学**
|
||||
低头走神,表面听课实则神游天外,坚信自己就是那个永远不会被抽到的幸运儿。
|
||||
## 💥 课堂真实痛点
|
||||
- 👨🏫 **老师痛点**:点名选择困难,纠结选谁浪费课堂时间;很难直观看到哪位学生被抽查少、哪些课文抽查频次不足;缺少课堂轮次记录,课后无法复盘本节课抽查情况。
|
||||
- 👩🎓 **学生痛点**:存在侥幸心理,指望永远不被点到;薄弱学生被抽到概率偏低;背诵练习缺少完整统计追溯。
|
||||
- 📊 **旧版短板(V6.2)**:Tkinter界面老旧;缺少轮次历史记录;统计只有简单表格,无可视化图表;插件系统能力有限;部分设置项仅UI展示没有实际生效;缺少撤销重做、分组抽取等实用课堂能力。
|
||||
|
||||
`a13rollcall` 登场!
|
||||
> 抛开主观印象,算法说了算,人人都有“中奖”概率,击碎摸鱼幻想,拯救老师选择困难症。
|
||||
**V6.8 针对性解决全部上述痛点。**
|
||||
|
||||
---
|
||||
|
||||
## ✨ 项目核心特性
|
||||
### 🎲 第六代 A13 自研抽签引擎
|
||||
拒绝地摊伪随机算法!
|
||||
- ✅ 会话内防重复逻辑,减少“天选倒霉蛋”连续上榜
|
||||
- ✅ 兼顾点名、抽背题库双重随机抽取
|
||||
- ✅ 会话状态记忆,概率分配更均衡,拒绝长期透明人
|
||||
## ✨ V6.8 核心新特性(对比V6.2)
|
||||
### 🎲 第六代 A13 智能抽取引擎(增强)
|
||||
- ✅ 动态权重系统升级:背诵差、抽取少的学生自动提升被抽中概率,兼顾公平+补差训练
|
||||
- ✅ **课堂轮次完整记录**:每一轮抽取完整存档,可查看历史轮次、恢复上一轮/指定轮次抽取现场,复盘整节课
|
||||
- ✅ 课文维度统计:统计每一篇课文被抽查频次,避免总盯着少数课文抽
|
||||
- ✅ 会话防重复 + 全局权重两套模式自由切换
|
||||
- ✅ 抽取记录持久保存,重启程序不会丢失本节课历史
|
||||
- ✅ 抽取时随机课文与抽取学生同步展示
|
||||
|
||||
### 🖥️ Tkinter 原生图形界面
|
||||
不用浏览器,打开直接窗口交互:
|
||||
- 🖼️ 主点名窗口,抽签效果可视化
|
||||
- 🪟 **悬浮快捷抽取浮窗**,上课缩成小窗口,不遮挡课件PPT,随用随点
|
||||
- ⌨️ **全套快捷键绑定**,手不用碰鼠标,键盘直接完成抽签、重置、切换模式
|
||||
### 🖼️ PyQt5 全新现代化UI
|
||||
- ✅ 完整重写界面,圆角卡片、阴影、动画效果,适配教室投影仪明暗双主题
|
||||
- ✅ Ctrl+鼠标滚轮全局界面缩放,适配不同分辨率、投影大屏
|
||||
- ✅ 悬浮小浮窗保留,不遮挡PPT课件,快捷一键抽取
|
||||
- ✅ 全局统一现代化错误弹窗,异常堆栈一键复制,便于反馈BUG
|
||||
- ✅ 设置修改后**右上角“需要重启”提示按钮**,一键关闭重启程序
|
||||
|
||||
### 🧙♂️ 傻瓜式新手配置向导
|
||||
不会改配置文件?不用慌!
|
||||
向导一步一步带你设置参数,小白也能零门槛上手。
|
||||
### 📈 专业统计可视化模块
|
||||
- ✅ 饼图:背诵状态分布(已背熟/未背熟/未抽查)
|
||||
- ✅ 柱状图:抽取次数Top排行、积分排行、课文抽查频次统计
|
||||
- ✅ 抽取记录表格:时间、学生、课文、轮次、背诵状态完整日志
|
||||
- ✅ 支持导出统计报表,用于课后教学复盘
|
||||
- ✅ 轮次选择器:加载历史轮次、恢复至某一轮、删除无效轮次
|
||||
|
||||
### 📂 数据持久化,搬家超方便
|
||||
- `students.txt` / `texts.txt` 存放名单和抽背题库
|
||||
- INI配置文件保存全部设置,关掉程序参数不丢失
|
||||
- 纯文本格式,复制粘贴就能备份、切换不同班级,迁移零成本
|
||||
### 🧩 强大插件生态(V6.8重大升级)
|
||||
- ✅ 可视化插件打包工具:拖拽式页面编辑器,不用手写复杂配置,可视化开发插件UI
|
||||
- ✅ 插件执行环境预注入常用库(`datetime/json/os/random/re`等),插件代码减少重复import
|
||||
- ✅ 插件管理页面全面现代化,插件统计卡片,一键打开打包工具与开发文档
|
||||
- ✅ 修复插件安装程序BUG;支持`.arcx`/`.arcxpkg`两种插件格式
|
||||
- ✅ 全局异常捕获,插件报错不会造成主程序闪退
|
||||
|
||||
### ⚡ 极致轻量化
|
||||
纯Python标准库开发,**零第三方pip依赖**。
|
||||
支持打包exe,没装Python的电脑双击直接跑。
|
||||
### 🛠️ 课堂实用功能集合
|
||||
1. **撤销 / 重做**:标记背诵状态、重置抽取、修改积分都支持多级撤销(最多50步),快捷键`Ctrl+Z`/`Ctrl+Y`
|
||||
2. **分组抽取**:对学生自定义分组,可以只针对某一组执行抽取,适合分层教学
|
||||
3. **自动保存**:可自定义自动保存间隔,防止电脑断电丢失课堂数据
|
||||
4. **课文列表右键菜单**:新增、编辑、上下移动、删除课文,无需手动修改txt
|
||||
5. **全套快捷键扩充**:切换课文、切换权重模式、缩放、撤销重做全部支持键盘操作
|
||||
6. **系统托盘支持**:关闭窗口最小化托盘,后台继续运行,上课不占用任务栏
|
||||
|
||||
> ⚠️避坑提醒:txt文件务必保存为**UTF‑8编码**,防止中文乱码;不要乱留空行,不然会抽中“空气同学”😂
|
||||
### 📂 数据与兼容性
|
||||
- ✅ **完全兼容V6.2旧版数据**:直接读取旧版`students.txt`、`texts.txt`、ini配置,平滑升级
|
||||
- ✅ 配置、学生数据、课文、轮次历史本地JSON持久化
|
||||
- ✅ 依旧支持文本格式手动编辑备份班级名单、题库
|
||||
- ✅ 严格校验UTF‑8编码,自动过滤空行脏数据,防止“抽到空气同学”
|
||||
|
||||
### ⚙️ 设置系统重构
|
||||
- ✅ 清理旧版本冗余设置项,删除仅展示无实际逻辑的无效选项
|
||||
- ✅ 动画效果设置完整生效:抽取动画、结果动画、过渡动画开关、自定义动画时长、缓动函数
|
||||
- ✅ 大量新增可配置项:自动保存周期、状态栏开关、托盘行为、图表样式、插件沙箱策略等
|
||||
- ✅ 设置区分「立即生效」和「需要重启生效」,修改重启项右上角弹出提醒按钮
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速上手
|
||||
### 环境依赖
|
||||
- Python `3.8` 及以上
|
||||
- Windows官方Python安装包自带Tkinter,无需额外安装组件
|
||||
|
||||
**命令行启动**
|
||||
- Python `3.9`及以上
|
||||
- 依赖:`PyQt5`
|
||||
```bash
|
||||
# 直接启动主图形界面
|
||||
python main.py
|
||||
|
||||
# 第一次玩,优先跑向导配置
|
||||
python wizard_launcher.py
|
||||
pip install PyQt5
|
||||
```
|
||||
> 执行后弹出图形窗口,**不是黑框里面敲字操作!**
|
||||
|
||||
**懒人双击启动**
|
||||
直接双击项目文件夹内的 `main.py` 即可运行。
|
||||
**运行程序**
|
||||
```bash
|
||||
# 主程序启动
|
||||
python main_qt.py
|
||||
|
||||
📦 不想装Python?
|
||||
去 [Releases](https://github.com/a13zhy/a13rollcall/releases) 下载打包好的exe,双击即玩。
|
||||
# 新手配置向导
|
||||
python wizard_launcher.py
|
||||
|
||||
**准备你的班级数据**
|
||||
1. 修改 `students.txt`,一行一个学生姓名。
|
||||
2. 修改 `texts.txt`,填入抽背题目,不用抽背直接清空。
|
||||
# 可视化插件打包工具
|
||||
python arcx_packager.py
|
||||
```
|
||||
> 运行后弹出GUI窗口,**非控制台操作**。
|
||||
|
||||
📦 不想安装Python:前往 [Releases](https://github.com/a13zhy/a13rollcall/releases) 下载打包好的EXE安装包,Windows直接双击使用。
|
||||
|
||||
### 班级数据准备
|
||||
1. 旧版迁移:直接复制V6.2的`students.txt`、`texts.txt`到程序目录,启动自动加载。
|
||||
2. 新建班级:
|
||||
- 在软件内「学生管理」批量粘贴名单,一行一名学生
|
||||
- 在「课文管理」添加抽背课文;不需要抽背则不添加课文,自动进入纯点名模式
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ 可玩的自定义配置
|
||||
全部可以在向导界面调整,自动存入ini配置:
|
||||
- 单次抽取多少人,单人拷问 / 批量拷打自由切换
|
||||
- 会话去重开关:开启尽量雨露均沾,关闭允许反复“中奖”
|
||||
- 悬浮浮窗开关、窗口大小位置记忆
|
||||
- 名单、题库文件路径自定义
|
||||
## ⌨️ 常用快捷键汇总V6.8
|
||||
| 快捷键 | 功能 |
|
||||
|---|---|
|
||||
| 空格 | 开始抽取 |
|
||||
| `Ctrl+Z` | 撤销操作 |
|
||||
| `Ctrl+Y` / `Ctrl+Shift+Z` | 重做 |
|
||||
| `Ctrl+S` | 手动保存全部数据 |
|
||||
| `Ctrl+= / Ctrl+-` | 放大/缩小界面 |
|
||||
| `Ctrl+0` | 重置界面缩放100% |
|
||||
| W | 切换动态权重开关 |
|
||||
| ← / → | 切换上一篇/下一篇课文 |
|
||||
|
||||
> ✨小科普:
|
||||
> 开启去重:同一节课尽量不点重复同学,适合常规课堂。
|
||||
> 关闭去重:适合快速扫荡抽查,看谁运气爆棚连续中招。
|
||||
---
|
||||
|
||||
## 💡 老玩家私藏骚操作
|
||||
1. **纯点名模式**:直接清空 `texts.txt`,程序自动关闭抽背功能,专心点名整活。
|
||||
2. **极速扫荡模式**:关掉去重,快速轮询全班,主打一个刺激。
|
||||
3. **编码保命**:txt保存为UTF‑8,不然中文直接乱码,体验感爆炸。
|
||||
4. **拒绝空气人**:名单不要留空行,不然会随机抽到不存在的同学,属于程序整活bug。
|
||||
## 💡 课堂使用小技巧
|
||||
1. **分层教学**:新建学生分组,抽取时选择分组,只抽查该组学生。
|
||||
2. **课后复盘**:打开统计窗口,查看本节课全部轮次记录、课文抽查统计,分析薄弱学生与薄弱篇目。
|
||||
3. **投影上课**:开启暗色主题,开启界面缩放,适配教室大屏;打开悬浮小窗,不遮挡课件。
|
||||
4. **纯点名模式**:不导入任何课文,系统自动关闭抽背,只做随机点名。
|
||||
5. **插件扩展**:打开可视化插件打包工具,拖拽组件快速制作自定义功能插件,拓展软件能力。
|
||||
|
||||
> 避坑提醒:导入外部txt文件务必使用`UTF‑8`编码;名单、题库不要留多余空行。
|
||||
|
||||
---
|
||||
|
||||
## 📜 更新日志
|
||||
### V6.0|2026‑08‑27
|
||||
- 🚀 重磅升级**第六代A13随机引擎**,概率分配更加科学合理
|
||||
### V6.8|2026‑09‑26
|
||||
- 🚀 **整体迁移PyQt5重构,告别Tkinter**,全界面现代化升级
|
||||
- 🎲 第六代A13抽取引擎增强,新增**课堂轮次历史系统**,支持查看、加载、恢复历史抽取轮次
|
||||
- 📊 完整可视化统计图表:饼图、多类柱状图、抽取日志表格;课文维度统计分析
|
||||
- 🛠️ 新增多级撤销/重做,自定义周期自动保存,全局界面缩放,学生分组抽取
|
||||
- 🧩 插件系统重大升级:可视化拖拽插件打包编辑器;修复多处插件执行报错;预注入常用标准库;优化插件管理UI
|
||||
- ⚙️ 设置系统重构:清理冗余无效设置;动画全部可生效;区分立即生效/需重启配置;右上角重启提醒按钮
|
||||
- 📝 课文列表右键编辑菜单,无需手动修改文本文件
|
||||
- 🛡️ 全局现代化异常弹窗,错误信息一键复制,降低闪退概率
|
||||
- 📁 **完全兼容V6.2旧版数据**,平滑迁移升级
|
||||
- 🪟 新增系统托盘最小化后台运行能力;悬浮浮窗体验优化
|
||||
- ⌨️ 拓展全套快捷键,覆盖新增全部功能
|
||||
- 🐛 修复:动画设置不生效、datetime模块导入报错、打包安装程序异常、绘图浮点数崩溃、部分按钮交互失效、档案保存异常
|
||||
|
||||
### V6.2|2026‑08‑27
|
||||
- 🚀 重磅升级第六代A13随机引擎,概率分配更加科学合理
|
||||
- 🔨 整体重构代码,架构清爽整洁,可读性、可维护性拉满
|
||||
- 🧙♂️ 新增交互式配置向导,零基础小白友好
|
||||
- 🛡️ 强化数据校验,自动过滤空行、无效脏数据
|
||||
@ -121,26 +157,40 @@ python wizard_launcher.py
|
||||
---
|
||||
|
||||
## 💬 开发者碎碎念
|
||||
> 拒绝花里胡哨的鸡肋功能,只做真正能用的课堂工具。
|
||||
> 无会员、无广告、永久免费开源。
|
||||
> 用算法代替主观偏心,减少老师点名内耗,顺便给学生一点点听课压力(狗头)。
|
||||
|
||||
喜欢就点个 ⭐Star 支持一波!
|
||||
有脑洞、bug欢迎提 Issue / PR,一起来折腾。
|
||||
坚持做面向一线教师的实用课堂工具,拒绝堆砌华而不实的鸡肋功能。全程本地离线运行,**不会上传任何学生名单、课堂数据到外网**。
|
||||
永久免费用于教学,无广告无会员。
|
||||
如果你觉得软件好用,欢迎点 ⭐Star;遇到BUG、有课堂新需求欢迎提交Issue与PR,一起迭代优化。
|
||||
|
||||
---
|
||||
|
||||
## 📄 开源许可
|
||||
本项目仅供教育学习、个人教学场景使用。
|
||||
**禁止直接打包倒卖、二次封装用于商业盈利。**
|
||||
本项目仅限**教育学习、个人教学场景使用**。
|
||||
禁止直接打包倒卖、二次封装后用于商业盈利。二次改编分发请明确标注原项目与原作者。
|
||||
|
||||
产品GITHUB仓库-https://github.com/a13zhy/a13rollcall
|
||||
|
||||
产品目录网址-https://dkfile.istester.com/zhysppa13/a13callname.html
|
||||
> GitHub仓库:[https://github.com/a13zhy/a13rollcall](https://github.com/a13zhy/a13rollcall)
|
||||
> 项目下载页:[https://dkfile.istester.com/zhysppa13/a13callname.html](https://dkfile.istester.com/zhysppa13/a13callname.html)
|
||||
|
||||
## 👨💻 Author
|
||||
**a13zhy**二创请标注原作者!!!!!谢谢各位大神
|
||||
a13zhy,二次创作、二次分发请标注原作者!
|
||||
|
||||
---
|
||||
|
||||
### V6.8项目目录简要说明
|
||||
```
|
||||
产品GITHUB仓库-https://github.com/a13zhy/a13rollcall
|
||||
产品目录网址-https://dkfile.istester.com/zhysppa13/a13callname.html
|
||||
a13rollcall_v6.8/
|
||||
├─ main_qt.py # PyQt5主程序入口
|
||||
├─ wizard_launcher.py # 新手配置向导
|
||||
├─ arcx_packager.py # 可视化插件打包工具
|
||||
├─ plugin_installer.py # 插件安装程序
|
||||
├─ constants.py # 全局常量统一管理
|
||||
├─ exceptions.py # 异常定义
|
||||
├─ modern_ui.py # 通用现代化UI组件
|
||||
├─ error_dialog.py # 现代化错误弹窗
|
||||
├─ operation_history.py # 撤销重做管理器
|
||||
├─ weight_visualization.py # 权重可视化组件
|
||||
├─ group_manager.py # 学生分组管理器
|
||||
├─ visual_page_editor.py # 插件可视化拖拽编辑器
|
||||
├─ stats_charts.py # 统计图表绘制组件
|
||||
├─ data_manager.py # 数据持久化、轮次历史管理
|
||||
└─ plugin_manager.py # 插件运行管理沙箱
|
||||
```
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户