课堂点名器实现的效果:
exe程序已打包如下,欢迎大家下载使用!!!
链接:课堂点名系统 提取码: qx18
一、核心功能设计
课堂点名系统实现的思路大致为可以自定义设置班级学生姓名或者默认通过学号进行学生随机点名抽取(txt文件),可以随机点名和顺序点名两个模式互相切换,并将这些随机抽取的学生姓名历史数据显示。
拆解需求,接下来我们可以通过以下几步进行实现:
- UI排版布局设计,确认点名器的各个功能设计
- 读取班级学生的姓名文件,将各个学生的姓名加载到列表中
- 实现对学生姓名的随机点名抽取功能和顺序点名抽取功能
- 语言播报功能
- 查看随机抽取的学生姓名历史数据
二、准备工作
1. Tkinter
Tkinter 是 python 内置的 TK GUI 工具集。TK 是 Tcl 语言的原生 GUI 库。作为 python
的图形设计工具,它所使用的 Tcl 语言环境已经完全嵌入到了 python 解释器中。
我们使用Tkinter开发GUI界面。
2. Pyttsx3
pyttsx3是Python中的文本到语音转换库。
我们使用Pyttsx3开发语音播报。
三、实现步骤
1. UI排版布局设计实现
根据点名器所需要的功能,首先我们可以进行UI布局设计,使用的是Tkinter。主要包含了姓名的随机抽取显示功能、开始与结束执行按钮、抽取历史结果的查看功能、姓名文件的读取显示等。
核心设计代码如下:
# woshinsy
# 主界面
name_list = []
history_list=[]
running_flag=False
seed=False
author=False
root = Tk()
root.title('Python_点名器 V2.0')
root.iconbitmap('favicon.ico')
root.geometry('500x360')
root.call("source", "azure.tcl")
root.call("set_theme", "dark")
a = StringVar()
a.set('恭喜谁呢?')
b = StringVar()
b.set('顺序模式')
# 扩展UI
root.paned = ttk.PanedWindow(root,height='250',width='500')
root.paned.grid(row=0, column=2, pady=(400, 5), rowspan=50)
# Notebook, pane #2
root.pane_2 = ttk.Frame(root.paned, padding=5)
root.paned.add(root.pane_2, weight=3)
# Notebook, pane #2
root.notebook = ttk.Notebook(root.pane_2)
root.notebook.pack(fill="both", expand=True)
root.tab_2 = ttk.Frame(root.notebook)
root.notebook.add(root.tab_2, text