# A13Rollcall V6.8|第六代A13引擎 PyQt重构版 > 🎲 A13Rollcall V6.8|第六代A13抽取引擎|课堂点名抽背系统 [![GitHub stars](https://img.shields.io/github/stars/a13zhy/a13rollcall?style=flat‑square)](https://github.com/a13zhy/a13rollcall/stargazers) [![GitHub forks](https://img.shields.io/github/forks/a13zhy/a13rollcall?style=flat‑square)](https://github.com/a13zhy/a13rollcall/fork) [![Python Version](https://img.shields.io/badge/python‑3.9+‑3776AB?style=flat‑square)](https://www.python.org/) [![Release](https://img.shields.io/github/v/release/a13zhy/a13rollcall?style=flat‑square)](https://github.com/a13zhy/a13rollcall/releases) [![License](https://img.shields.io/badge/license‑NonCommercial‑blue?style=flat‑square)](#📄-开源许可) 🔥 **本地离线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`两种插件格式 - ✅ 全局异常捕获,插件报错不会造成主程序闪退 ### 🛠️ 课堂实用功能集合 1. **撤销 / 重做**:标记背诵状态、重置抽取、修改积分都支持多级撤销(最多50步),快捷键`Ctrl+Z`/`Ctrl+Y` 2. **分组抽取**:对学生自定义分组,可以只针对某一组执行抽取,适合分层教学 3. **自动保存**:可自定义自动保存间隔,防止电脑断电丢失课堂数据 4. **课文列表右键菜单**:新增、编辑、上下移动、删除课文,无需手动修改txt 5. **全套快捷键扩充**:切换课文、切换权重模式、缩放、撤销重做全部支持键盘操作 6. **系统托盘支持**:关闭窗口最小化托盘,后台继续运行,上课不占用任务栏 ### 📂 数据与兼容性 - ✅ **完全兼容V6.2旧版数据**:直接读取旧版`students.txt`、`texts.txt`、ini配置,平滑升级 - ✅ 配置、学生数据、课文、轮次历史本地JSON持久化 - ✅ 依旧支持文本格式手动编辑备份班级名单、题库 - ✅ 严格校验UTF‑8编码,自动过滤空行脏数据,防止“抽到空气同学” ### ⚙️ 设置系统重构 - ✅ 清理旧版本冗余设置项,删除仅展示无实际逻辑的无效选项 - ✅ 动画效果设置完整生效:抽取动画、结果动画、过渡动画开关、自定义动画时长、缓动函数 - ✅ 大量新增可配置项:自动保存周期、状态栏开关、托盘行为、图表样式、插件沙箱策略等 - ✅ 设置区分「立即生效」和「需要重启生效」,修改重启项右上角弹出提醒按钮 --- ## 🚀 快速上手 ### 环境依赖 - Python `3.9`及以上 - 依赖:`PyQt5` ```bash pip install PyQt5 ``` **运行程序** ```bash # 主程序启动 python main_qt.py # 新手配置向导 python wizard_launcher.py # 可视化插件打包工具 python arcx_packager.py ``` > 运行后弹出GUI窗口,**非控制台操作**。 📦 不想安装Python:前往 [Releases](https://github.com/a13zhy/a13rollcall/releases) 下载打包好的EXE安装包,Windows直接双击使用。 ### 班级数据准备 1. 旧版迁移:直接复制V6.2的`students.txt`、`texts.txt`到程序目录,启动自动加载。 2. 新建班级: - 在软件内「学生管理」批量粘贴名单,一行一名学生 - 在「课文管理」添加抽背课文;不需要抽背则不添加课文,自动进入纯点名模式 --- ## ⌨️ 常用快捷键汇总V6.8 | 快捷键 | 功能 | |---|---| | 空格 | 开始抽取 | | `Ctrl+Z` | 撤销操作 | | `Ctrl+Y` / `Ctrl+Shift+Z` | 重做 | | `Ctrl+S` | 手动保存全部数据 | | `Ctrl+= / Ctrl+-` | 放大/缩小界面 | | `Ctrl+0` | 重置界面缩放100% | | W | 切换动态权重开关 | | ← / → | 切换上一篇/下一篇课文 | --- ## 💡 课堂使用小技巧 1. **分层教学**:新建学生分组,抽取时选择分组,只抽查该组学生。 2. **课后复盘**:打开统计窗口,查看本节课全部轮次记录、课文抽查统计,分析薄弱学生与薄弱篇目。 3. **投影上课**:开启暗色主题,开启界面缩放,适配教室大屏;打开悬浮小窗,不遮挡课件。 4. **纯点名模式**:不导入任何课文,系统自动关闭抽背,只做随机点名。 5. **插件扩展**:打开可视化插件打包工具,拖拽组件快速制作自定义功能插件,拓展软件能力。 > 避坑提醒:导入外部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://github.com/a13zhy/a13rollcall) > 项目下载页:[https://dkfile.istester.com/zhysppa13/a13callname.html](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 # 插件运行管理沙箱 ```