导入软件包
import tkinter as tk
from tkinter import messagebox
import random
定义一个类
包含多个函数
显示区域
按键对应的事件
异常检测
调用学生名单
抽取学生
class RandomStudentApp:
def __init__(self, master):
self.master = master
self.master.title("随机抽取学生")
self.label = tk.Label(master, text="点击开始按钮开始随机抽取学生")
self.label.pack(pady=20)
self.start_button = tk.Button(master, text="开始", command=self.start_random)
self.start_button.pack(pady=10)
self.stop_button = tk.Button(master, text="停止", command=self.stop_random, state=tk.DISABLED)
self.stop_button.pack(pady=10)
self.students = self.load_students()
self.randomizing = False
self.selected_student = None
def load_students(self):
try:
with open("students.txt", "r", encoding="utf-8") as file:
students = [line.strip() for line in file if line.strip()]
return students
except FileNotFoundError:
messagebox.showerror("错误", "找不到学生名单文件 'students.txt'")
self.master.destroy()
return []
def start_random(self):
if not self.randomizing:
self.randomizing = True
self.start_button.config(state=tk.DISABLED)
self.stop_button.config(state=tk.NORMAL)
self.randomize()
def stop_random(self):
if self.randomizing:
self.randomizing = False
self.start_button.config(state=tk.NORMAL)
self.stop_button.config(state=tk.DISABLED)
self.label.config(text=f"随机选中的学生是:{self.selected_student}")
def randomize(self):
if self.randomizing:
self.selected_student = random.choice(self.students)
self.label.config(text=self.selected_student)
self.master.after(100, self.randomize)
最后定义主函数main
if __name__ == "__main__":
root = tk.Tk()
app = RandomStudentApp(root)
root.mainloop()