随机点名python

import tkinter as tk
from tkinter import messagebox
import random
import time
def load_students(filename):
    try:
        with open(filename, 'r', encoding='utf-8') as file:
            students = file.readlines()
        return [s.strip() for s in students if s.strip()]
    except FileNotFoundError:
        messagebox.showerror("错误", "找不到学生名单文件")
        return None
def pick_student():
    student = random.choice(students)
    current_student.set(student)
    label.config(text=student)
def start_button_clicked():
    global stop_time
    stop_time = None
    for _ in range(10):  #10表示随机跳动的次数
        pick_student()
        time.sleep(0.5)  #调整跳动速度
    label.config(text="正在选择中...")
def stop_button_clicked():
    global stop_time
    if stop_time is None:
        stop_time = time.time()
        pick_student()
    else:
        messagebox.showerror("错误", "已经停止选择")
root = tk.Tk()
root.title("随机点名系统")
students = load_students("students.txt")
if students is None:
    root.destroy()
    exit()
# 创建一个StringVar变量用于存储当前选中的学生
current_student = tk.StringVar()
# 创建标签显示选中的学生
label = tk.Label(root, text="", font=("Arial", 24))
label.pack(pady=20)
# 创建开始按钮
start_button = tk.Button(root, text="开始", command=start_button_clicked)
start_button.pack()
# 创建停止按钮
stop_button = tk.Button(root, text="停止", command=stop_button_clicked)
stop_button.pack()
root.mainloop()

1. 导入所需的库和模块:

  tkinter:用于创建图形用户界面。

  messagebox:用于显示错误消息框。

  random:用于从列表中随机选择元素。

  time:用于控制程序的暂停时间。

2. 定义一个函数Load_students(filename),用于从指定的文件名中读取学生名单。如果文件不存在,会弹出一个错误消息框。

3. 定义一个函数pick_student(),用于从学生名单中随机选择一个学生,并将其设置为当前选中的学生。

4. 定义一个函数start_button_clicked(),当点击开始按钮时调用。它会设置全局变量stop_time为None,然后循环调用pick_student()函数10次,每次调用之间暂停0.5秒。同时,将标签的文本设置为"正在选择中..."。

5. 定义一个函数stop_button_clicked(),当点击停止按钮时调用。如果stop_time为None,表示尚未开始选择学生,此时将其设置为当前时间。否则,弹出一个错误消息框提示已经停止选择。

6. 创建一个Tkinter窗口,并设置标题为"随机点名系统"。

7. 调用Load_students("students.txt")函数加载学生名单。如果返回值为None,表示文件未找到或无法读取,程序将销毁窗口并退出。

8. 创建一个StringVar变量current_student用于存储当前选中的学生。

9. 创建一个标签Label用于显示选中的学生。

10. 创建两个按钮:开始按钮和停止按钮,分别绑定到start_button_clicked()和stop_button_clicked()函数。

11. 使用root.mainloop()启动Tkinter的主循环,使窗口保持打开状态并响应用户操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值