def build_toplevel1(root):
toplevel = Toplevel(root)
toplevel.transient(root)
toplevel.geometry("200x100+600+400")
toplevel.title("查询叫号")
lb = Label(toplevel, text="需要查询的团队编号:")
lb.pack()
inp = Entry(toplevel)
inp.pack()
bn = Button(toplevel, text="查询",command=lambda: check_call(inp))
bn.pack()
def build_toplevel2():
toplevel = Toplevel()
toplevel.transient()
toplevel.geometry("300x400+600+200")
toplevel.title("模拟叫号")
lb = Label(toplevel, text="请选择要模拟的决赛室号:")
lb.pack()
room_number = IntVar()
for i in range(9):
Radiobutton(toplevel, text="决赛室" + str(i + 1), fg='blue', font=('微软雅黑', '12', 'bold'), variable=room_number,
value=i).pack(anchor='w')
bn = Button(toplevel, text="模拟")
bn.pack()
bn.bind("<Button-1>", lambda event: build_toplevel3(event, toplevel, room_number.get()))
def allocation():
on_list = set(management.keys())
for i in range(7):
extraction = set(random.sample(list(on_list), 44))
rooms.append(extraction)
on_list = on_list - extraction
rooms.append(on_list)
def check_call(inp):
allocation()
needed_enquire = inp.get()
for room_number, teams in enumerate(rooms, 1):
if needed_enquire in teams:
messagebox.showinfo(title="结果",
message="决赛室"+str(room_number)+",叫号为"+str(list(teams).index(needed_enquire)+1))
break
else:
messagebox.showerror(title="结果", message="该团队编号不存在,输入有误")
def build_toplevel3(event, toplevel, room_number):
allocation()
call_number = iter(rooms[room_number])
subwindow = Toplevel(toplevel)
subwindow.transient()
subwindow.geometry("500x500+600+200")
subwindow.title("正在模拟叫号")
lframe = Frame(subwindow)
lframe.pack(side="left")
rframe = Frame(subwindow)
rframe.pack(side="right")
yscroll = Scrollbar(subwindow, orient=VERTICAL)
yscroll.activate("slider")
yscroll.pack(side=RIGHT, fill=Y)
Label(lframe,text="叫号顺序",font=("微软雅黑", 15, "bold")).pack(side="top")
Label(rframe, text="正在模拟决赛室" + str(room_number + 1), font=("微软雅黑", 15, "bold")).pack(side="top")
Button(rframe, text="开始", command=lambda: call_stimulation(call_number, text)).pack()
Button(rframe, text="停止", command=lambda: subwindow.destroy()).pack()
text = Text(rframe, font=("微软雅黑", 15, "bold"), fg="CornflowerBlue",yscrollcommand=yscroll.set)
text.pack(fill=Y)
yscroll.config(command=text.yview)
lx=Listbox(lframe, font=("微软雅黑", 15, "bold"),height=20)
lx.pack()
for i in rooms[room_number]:
lx.insert("end",i)
def call_stimulation(call_number,text):
try:
text.insert(END,str(next(call_number))+"\n")
text.after(500,lambda:call_stimulation(call_number,text))
except:
messagebox.showinfo("提示","叫号完毕")
课设——决赛叫号模拟源码
最新推荐文章于 2024-07-12 19:06:42 发布