def build_toplevel4(r):
toplevel=Toplevel(r)
toplevel.title("查询")
toplevel.geometry("300x200+600+400")
Label(toplevel,text="要查询的赛事类别:").grid(row=0,column=0,pady=20)
ent1=Entry(toplevel)
ent1.grid(row=0,column=1,pady=20)
Label(toplevel,text="要查询的参赛学校:").grid(row=1,column=0,pady=20)
ent2=Entry(toplevel)
ent2.grid(row=1,column=1,pady=20)
Button(toplevel,text="查询",command=lambda : get_result(ent1.get(),ent2.get(),toplevel)).grid(row=2,pady=20)
def get_result(cat,search_school,wd):
categories = list(set(map(lambda x: x.category, management.values())))
if search_school:
schools = list(set(map(lambda x: x.school, management.values())))
if search_school in schools:
tl = Toplevel(wd)
tl.title(search_school+"的查询结果")
tl.geometry("500x400+400+200")
xscroll = Scrollbar(tl, orient=HORIZONTAL)
yscroll = Scrollbar(tl, orient=VERTICAL)
xscroll.pack(side=BOTTOM, fill=X)
yscroll.pack(side=RIGHT, fill=Y)
tbcolumns = ["参赛队编号", "参赛作品名称", "参赛者", "指导老师"]
tree = ttk.Treeview(master=tl,
columns=tbcolumns,
show='tree headings',
height=150,
xscrollcommand=xscroll.set,
yscrollcommand=yscroll.set,
displaycolumns="#all")
xscroll.config(command=tree.xview)
yscroll.config(command=tree.yview)
tree.heading(column="#0",text="赛事类别")
for i in range(len(tbcolumns)):
tree.heading(column=tbcolumns[i],text=tbcolumns[i])
tree.column(column=tbcolumns[i], anchor=CENTER, width=150, stretch=True)
objs = list(filter(lambda x: x.school == search_school, management.values()))
for typ in categories:
obj=list(filter(lambda x:x.category==typ,objs))
if obj:
stu_root = tree.insert('', END, text=typ)
for index in range(len(obj)):
tree.insert(stu_root, END, text=str(index+1), values=[obj[index].number,
obj[index].work,
obj[index].competitor,
obj[index].teacher])
tree.pack(fill=BOTH)
else:
messagebox.showerror("提示", "查询的学校不存在!")
elif cat:
if cat in categories:
tl = Toplevel(wd)
tl.title(cat + "的查询结果")
tl.geometry("500x400+400+200")
tbcolumns = ["参赛队编号", "参赛学校", "参赛作品名称", "参赛者", "指导老师"]
xscroll = Scrollbar(tl, orient=HORIZONTAL)
yscroll = Scrollbar(tl, orient=VERTICAL)
xscroll.pack(side=BOTTOM, fill=X)
yscroll.pack(side=RIGHT, fill=Y)
tree = ttk.Treeview(master=tl,
columns=tbcolumns,
show='headings',
height=150,
xscrollcommand=xscroll.set,
yscrollcommand=yscroll.set)
xscroll.config(command=tree.xview)
yscroll.config(command=tree.yview)
for i in range(len(tbcolumns)):
tree.heading(column=tbcolumns[i], text=tbcolumns[i])
tree.column(column=tbcolumns[i], anchor=CENTER, width=150, stretch=True)
objs = list(filter(lambda x: x.category == cat, management.values()))
def quick_sort(first, end):
if first < end:
x = objs[first]
m, n = first, end
while m < n:
while m < n and objs[n].number >= x.number:
n -= 1
if m < n:
objs[m] = objs[n]
while m < n and objs[m].number <= x.number:
m += 1
if m < n:
objs[n] = objs[m]
objs[m] = x
quick_sort(first, m - 1)
quick_sort(m + 1, end)
quick_sort(0,len(objs)-1)
for index in range(len(objs)):
tree.insert('', END, values=[objs[index].number,
objs[index].school,
objs[index].work,
objs[index].competitor,
objs[index].teacher])
tree.pack(fill=BOTH)
else:
messagebox.showerror("提示", "查找的赛事类别不存在!")
课设——参赛队伍查询源码
最新推荐文章于 2024-08-13 18:29:56 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)