import tkinter as tk
import time
import re
window = tk.Tk()
window.title("班级点名程序")
window.geometry('1150x700')
content = ''
btn_datas = [
["", "随机抽奖2", "随机抽奖3", "随机抽奖4", "随机抽奖5", "随机抽奖2", "随机抽奖1", "重新开始"]
]
def extract_numbers(text):
numbers = re.findall(r'\d+', text)
print(numbers)
if len(numbers) >= 2:
return int(numbers[0]) - 1, int(numbers[1]) - 1
return None
def ran_cjf():
import random
student_list = []
for r in range(1, 6):
for c in range(1, 9):
student_list.append(f"第{r}排第{c}位置")
countdown = 5
result_label_text = "马上开始"
def update_countdown():
nonlocal countdown, result_label_text
if countdown > 0:
result_label_text = f"倒计时:{countdown} 秒"
result.set(result_label_text)
countdown -= 1
window.after(1000, update_countdown)
else:
winner1 = random.sample(student_list, 1)
print(winner1)
numbers = re.findall(r'\d+', winner1[0])
print(numbers)
if len(numbers) >= 2:
i = int(numbers[0])-1
j = int(numbers[1])-1
if btn_datas[i][j] == '无人':
ran_cjf()
else:
winner=btn_datas[i][j]
print(winner)
result.set(winner)
update_countdown()
def ran_cjc():
import random
student_list = []
for r in range(1, 6):
for c in range(1, 9):
student_list.append(f"第{r}排第{c}位置")
countdown = 5
result_label_text = ""
def update_countdown():
nonlocal countdown, result_label_text
if countdown > 0:
result_label_text = f"倒计时:{countdown} 秒"
result.set(result_label_text)
countdown -= 1
window.after(1000, update_countdown)
else:
winner1 = random.sample(student_list, 2)
winner=[]
for w in range(2):
numbers = re.findall(r'\d+', winner1[w])
print(numbers)
if len(numbers) >= 2:
i = int(numbers[0]) - 1
j = int(numbers[1]) - 1
if btn_datas[i][j] == '无人':
continue
else:
winner.append(btn_datas[i][j])
print(winner)
result.set(winner)
update_countdown()
def ran_cjs():
import random
student_list = []
for r in range(1, 6):
for c in range(1, 9):
student_list.append(f"第{r}排第{c}位置")
countdown = 5
result_label_text = ""
def update_countdown():
nonlocal countdown, result_label_text
if countdown > 0:
result_label_text = f"倒计时:{countdown} 秒"
result.set(result_label_text)
countdown -= 1
window.after(1000, update_countdown)
else:
winner1 = random.sample(student_list, 3)
winner = []
for w in range(3):
numbers = re.findall(r'\d+', winner1[w])
print(numbers)
if len(numbers) >= 2:
i = int(numbers[0]) - 1
j = int(numbers[1]) - 1
if btn_datas[i][j] == '无人':
continue
else:
winner.append(btn_datas[i][j])
print(winner)
result.set(winner)
update_countdown()
def ran_cja():
import random
student_list = []
for r in range(1, 6):
for c in range(1, 9):
student_list.append(f"第{r}排第{c}位置")
countdown = 5
result_label_text = ""
def update_countdown():
nonlocal countdown, result_label_text
if countdown > 0:
result_label_text = f"倒计时:{countdown} 秒"
result.set(result_label_text)
countdown -= 1
window.after(1000, update_countdown)
else:
winner1 = random.sample(student_list, 4)
winner = []
for w in range(4):
numbers = re.findall(r'\d+', winner1[w])
print(numbers)
if len(numbers) >= 2:
i = int(numbers[0]) - 1
j = int(numbers[1]) - 1
if btn_datas[i][j] == '无人':
continue
else:
winner.append(btn_datas[i][j])
print(winner)
result.set(winner)
update_countdown()
def ran_cjx():
import random
student_list = []
for r in range(1, 6):
for c in range(1, 9):
student_list.append(f"第{r}排第{c}位置")
countdown = 5
result_label_text = ""
def update_countdown():
nonlocal countdown, result_label_text
if countdown > 0:
result_label_text = f"倒计时:{countdown} 秒"
result.set(result_label_text)
countdown -= 1
window.after(1000, update_countdown)
else:
winner1 = random.sample(student_list, 5)
winner = []
for w in range(5):
numbers = re.findall(r'\d+', winner1[w])
print(numbers)
if len(numbers) >= 2:
i = int(numbers[0]) - 1
j = int(numbers[1]) - 1
if btn_datas[i][j]=='无人':
continue
else:
winner.append(btn_datas[i][j])
print(winner)
result.set(winner)
update_countdown()
def btn_onclick(data):
global content
if data == "重新开始":
expression.set('')
result.set('')
content = ''
elif data == '随机抽奖1':
ran_cjf()
elif data == '随机抽奖2':
ran_cjc()
elif data == '随机抽奖3':
ran_cjs()
elif data == '随机抽奖4':
ran_cja()
elif data == '随机抽奖5':
ran_cjx()
else:
content += data
expression.set(content)
# 定义更新时间显示的函数
def update_time():
current_time = time.strftime("%Y:%m:%d %H:%M:%S", time.localtime(time.time()))
gettime.set(current_time)
window.after(1000, update_time) # 每隔1秒调用自身来更新时间
for r in range(6):
for c in range(8):
btn_submit = tk.Button(window, text=btn_datas[r][c], font=("楷体", 15),
command=lambda x=btn_datas[r][c]: btn_onclick(x))
btn_submit.place(x=c * 140 + 12, y=r * 60 + 260, width=140, height=50)
frame = tk.Frame(window, bd=2, relief="sunken", background='#ffffff')
frame.place(x=10, y=10, width=1130, height=60)
expression = tk.StringVar()
lable_express_text = tk.Label(frame, textvariable=expression, font=("楷体", 15,), background="red")
lable_express_text.place(x=0, y=0, width=1130, height=60)
lable_result_text = tk.Label(window, text="抽中学生位置:", font=("楷体", 15))
lable_result_text.place(x=0, y=100, width=150, height=30)
result = tk.StringVar(value='不要心急呀,我还没有开始工作呢?')
lable_result_content = tk.Label(window, textvariable=result, font=("楷体", 15), )
lable_result_content.place(x=150, y=100, width=1000, height=30)
lable_time_text = tk.Label(window, text="您好,现在北京时间:", font=("楷体", 15), background='red')
lable_time_text.place(x=0, y=200, width=360, height=30)
gettime = tk.StringVar()
lable_time = tk.Label(window, textvariable=gettime, font=("楷体", 15), background='red')
lable_time.place(x=360, y=200, width=790, height=30)
# 启动时间更新函数
update_time()
window.mainloop()
班级点名程序可以随机点名,并从表中找到学生的姓名
最新推荐文章于 2025-04-14 10:09:56 发布
2808

被折叠的 条评论
为什么被折叠?



