镜像自地址
https://github.com/a13zhy/a13rollcall.git
已同步 2026-10-20 03:17:47 +08:00
第六代A13引擎驱动的课堂点名程序
| app.ico | ||
| arcx_packager.py | ||
| config_manager.py | ||
| config.json | ||
| constants.py | ||
| data_manager.py | ||
| draw_engine.py | ||
| echo_hole.py | ||
| error_dialog.py | ||
| example_plugin_v1.0.0.arcx | ||
| exceptions.py | ||
| group_manager.py | ||
| install_gui.py | ||
| main_qt.py | ||
| main.py | ||
| modern_ui.py | ||
| operation_history.py | ||
| plugin_constants.py | ||
| plugin_installer_template.py | ||
| plugin_installer.py | ||
| plugin_manager.py | ||
| plugin_ui_injector.py | ||
| README.md | ||
| reset_defaults.py | ||
| stats_charts.py | ||
| students.txt | ||
| texts.txt | ||
| visual_page_editor.py | ||
| weight_visualization.py | ||
| wizard_launcher.py | ||
| wizard_record.ini | ||
| 开发者指南_V6.8补充.md | ||
| 插件开发完全指南.md | ||
| 示例插件.arcx | ||
A13Rollcall V6.8|第六代A13引擎 PyQt重构版
🔥 本地离线PyQt5 GUI点名抽背工具|零广告|零氪金|无捆绑|全部数据本地存储
⚠️ V6.8 由Tkinter迁移至PyQt5重构,现代化桌面窗口,Windows10/11体验大幅提升;完全兼容V6.2旧版数据,直接迁移旧班级文件即可使用。专为中小学课堂抽背、随机点名场景打造。
老师上课点名反复纠结,怕偏心、怕重复;学生上课走神,寄希望于“不会抽到我”。交给第六代A13智能抽取引擎,算法接管抽签,消除主观偏好,兼顾公平与薄弱学生强化练习。
💥 课堂真实痛点
- 👨🏫 老师痛点:点名选择困难,纠结选谁浪费课堂时间;很难直观看到哪位学生被抽查少、哪些课文抽查频次不足;缺少课堂轮次记录,课后无法复盘本节课抽查情况。
- 👩🎓 学生痛点:存在侥幸心理,指望永远不被点到;薄弱学生被抽到概率偏低;背诵练习缺少完整统计追溯。
- 📊 旧版短板(V6.2):Tkinter界面老旧;缺少轮次历史记录;统计只有简单表格,无可视化图表;插件系统能力有限;部分设置项仅UI展示没有实际生效;缺少撤销重做、分组抽取等实用课堂能力。
V6.8 针对性解决全部上述痛点。
✨ V6.8 核心新特性(对比V6.2)
🎲 第六代 A13 智能抽取引擎(增强)
- ✅ 动态权重系统升级:背诵差、抽取少的学生自动提升被抽中概率,兼顾公平+补差训练
- ✅ 课堂轮次完整记录:每一轮抽取完整存档,可查看历史轮次、恢复上一轮/指定轮次抽取现场,复盘整节课
- ✅ 课文维度统计:统计每一篇课文被抽查频次,避免总盯着少数课文抽
- ✅ 会话防重复 + 全局权重两套模式自由切换
- ✅ 抽取记录持久保存,重启程序不会丢失本节课历史
- ✅ 抽取时随机课文与抽取学生同步展示
🖼️ PyQt5 全新现代化UI
- ✅ 完整重写界面,圆角卡片、阴影、动画效果,适配教室投影仪明暗双主题
- ✅ Ctrl+鼠标滚轮全局界面缩放,适配不同分辨率、投影大屏
- ✅ 悬浮小浮窗保留,不遮挡PPT课件,快捷一键抽取
- ✅ 全局统一现代化错误弹窗,异常堆栈一键复制,便于反馈BUG
- ✅ 设置修改后右上角“需要重启”提示按钮,一键关闭重启程序
📈 专业统计可视化模块
- ✅ 饼图:背诵状态分布(已背熟/未背熟/未抽查)
- ✅ 柱状图:抽取次数Top排行、积分排行、课文抽查频次统计
- ✅ 抽取记录表格:时间、学生、课文、轮次、背诵状态完整日志
- ✅ 支持导出统计报表,用于课后教学复盘
- ✅ 轮次选择器:加载历史轮次、恢复至某一轮、删除无效轮次
🧩 强大插件生态(V6.8重大升级)
- ✅ 可视化插件打包工具:拖拽式页面编辑器,不用手写复杂配置,可视化开发插件UI
- ✅ 插件执行环境预注入常用库(
datetime/json/os/random/re等),插件代码减少重复import - ✅ 插件管理页面全面现代化,插件统计卡片,一键打开打包工具与开发文档
- ✅ 修复插件安装程序BUG;支持
.arcx/.arcxpkg两种插件格式 - ✅ 全局异常捕获,插件报错不会造成主程序闪退
🛠️ 课堂实用功能集合
- 撤销 / 重做:标记背诵状态、重置抽取、修改积分都支持多级撤销(最多50步),快捷键
Ctrl+Z/Ctrl+Y - 分组抽取:对学生自定义分组,可以只针对某一组执行抽取,适合分层教学
- 自动保存:可自定义自动保存间隔,防止电脑断电丢失课堂数据
- 课文列表右键菜单:新增、编辑、上下移动、删除课文,无需手动修改txt
- 全套快捷键扩充:切换课文、切换权重模式、缩放、撤销重做全部支持键盘操作
- 系统托盘支持:关闭窗口最小化托盘,后台继续运行,上课不占用任务栏
📂 数据与兼容性
- ✅ 完全兼容V6.2旧版数据:直接读取旧版
students.txt、texts.txt、ini配置,平滑升级 - ✅ 配置、学生数据、课文、轮次历史本地JSON持久化
- ✅ 依旧支持文本格式手动编辑备份班级名单、题库
- ✅ 严格校验UTF‑8编码,自动过滤空行脏数据,防止“抽到空气同学”
⚙️ 设置系统重构
- ✅ 清理旧版本冗余设置项,删除仅展示无实际逻辑的无效选项
- ✅ 动画效果设置完整生效:抽取动画、结果动画、过渡动画开关、自定义动画时长、缓动函数
- ✅ 大量新增可配置项:自动保存周期、状态栏开关、托盘行为、图表样式、插件沙箱策略等
- ✅ 设置区分「立即生效」和「需要重启生效」,修改重启项右上角弹出提醒按钮
🚀 快速上手
环境依赖
- Python
3.9及以上 - 依赖:
PyQt5
pip install PyQt5
运行程序
# 主程序启动
python main_qt.py
# 新手配置向导
python wizard_launcher.py
# 可视化插件打包工具
python arcx_packager.py
运行后弹出GUI窗口,非控制台操作。
📦 不想安装Python:前往 Releases 下载打包好的EXE安装包,Windows直接双击使用。
班级数据准备
- 旧版迁移:直接复制V6.2的
students.txt、texts.txt到程序目录,启动自动加载。 - 新建班级:
- 在软件内「学生管理」批量粘贴名单,一行一名学生
- 在「课文管理」添加抽背课文;不需要抽背则不添加课文,自动进入纯点名模式
⌨️ 常用快捷键汇总V6.8
| 快捷键 | 功能 |
|---|---|
| 空格 | 开始抽取 |
Ctrl+Z |
撤销操作 |
Ctrl+Y / Ctrl+Shift+Z |
重做 |
Ctrl+S |
手动保存全部数据 |
Ctrl+= / Ctrl+- |
放大/缩小界面 |
Ctrl+0 |
重置界面缩放100% |
| W | 切换动态权重开关 |
| ← / → | 切换上一篇/下一篇课文 |
💡 课堂使用小技巧
- 分层教学:新建学生分组,抽取时选择分组,只抽查该组学生。
- 课后复盘:打开统计窗口,查看本节课全部轮次记录、课文抽查统计,分析薄弱学生与薄弱篇目。
- 投影上课:开启暗色主题,开启界面缩放,适配教室大屏;打开悬浮小窗,不遮挡课件。
- 纯点名模式:不导入任何课文,系统自动关闭抽背,只做随机点名。
- 插件扩展:打开可视化插件打包工具,拖拽组件快速制作自定义功能插件,拓展软件能力。
避坑提醒:导入外部txt文件务必使用
UTF‑8编码;名单、题库不要留多余空行。
📜 更新日志
V6.8|2026‑09‑26
- 🚀 整体迁移PyQt5重构,告别Tkinter,全界面现代化升级
- 🎲 第六代A13抽取引擎增强,新增课堂轮次历史系统,支持查看、加载、恢复历史抽取轮次
- 📊 完整可视化统计图表:饼图、多类柱状图、抽取日志表格;课文维度统计分析
- 🛠️ 新增多级撤销/重做,自定义周期自动保存,全局界面缩放,学生分组抽取
- 🧩 插件系统重大升级:可视化拖拽插件打包编辑器;修复多处插件执行报错;预注入常用标准库;优化插件管理UI
- ⚙️ 设置系统重构:清理冗余无效设置;动画全部可生效;区分立即生效/需重启配置;右上角重启提醒按钮
- 📝 课文列表右键编辑菜单,无需手动修改文本文件
- 🛡️ 全局现代化异常弹窗,错误信息一键复制,降低闪退概率
- 📁 完全兼容V6.2旧版数据,平滑迁移升级
- 🪟 新增系统托盘最小化后台运行能力;悬浮浮窗体验优化
- ⌨️ 拓展全套快捷键,覆盖新增全部功能
- 🐛 修复:动画设置不生效、datetime模块导入报错、打包安装程序异常、绘图浮点数崩溃、部分按钮交互失效、档案保存异常
V6.2|2026‑08‑27
- 🚀 重磅升级第六代A13随机引擎,概率分配更加科学合理
- 🔨 整体重构代码,架构清爽整洁,可读性、可维护性拉满
- 🧙♂️ 新增交互式配置向导,零基础小白友好
- 🛡️ 强化数据校验,自动过滤空行、无效脏数据
- 🪟 新增悬浮快捷浮窗,上课不挡PPT,体验大提升
- ⌨️ 全套全局快捷键加持,解放你的鼠标
- 🖥️ 全平台兼容性优化,降低闪退翻车概率
💬 开发者碎碎念
坚持做面向一线教师的实用课堂工具,拒绝堆砌华而不实的鸡肋功能。全程本地离线运行,不会上传任何学生名单、课堂数据到外网。 永久免费用于教学,无广告无会员。 如果你觉得软件好用,欢迎点 ⭐Star;遇到BUG、有课堂新需求欢迎提交Issue与PR,一起迭代优化。
📄 开源许可
本项目仅限教育学习、个人教学场景使用。 禁止直接打包倒卖、二次封装后用于商业盈利。二次改编分发请明确标注原项目与原作者。
GitHub仓库:https://github.com/a13zhy/a13rollcall 项目下载页:https://dkfile.istester.com/zhysppa13/a13callname.html
👨💻 Author
a13zhy,二次创作、二次分发请标注原作者!
V6.8项目目录简要说明
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 # 插件运行管理沙箱