你可以使用Tkinter库中的Treeview控件来展示成绩查询结果。在query_score
方法中,创建一个新窗口,并在其中添加一个Treeview控件,然后将查询结果插入到Treeview中。
以下是修改后的代码示例:
# ...
import tkinter as tk
from tkinter import ttk
class AthletePage:
def __init__(self, parent_window, username, password):
# 销毁传入的窗口并创建新窗口
parent_window.destroy()
self.window = tk.Tk()
self.window.title("运动员查询页面")
self.window.geometry('500x400')
# ...
# 查询成绩逻辑
def query_score(self):
# ...
if not results:
messagebox.showinfo("提示", "该运动员没有成绩记录。")
else:
self.window.destroy()
self.window = tk.Tk()
self.window.title(f"{self.name} 的成绩查询结果")
self.window.geometry('500x400')
# 创建一个Frame作为容器
frame_center = tk.Frame(self.window)
frame_center.pack(pady=10)
# 用于存储数据的列表
data = results
# 创建一个树形视图来展示成绩
columns = ("项目", "成绩", "排名")
tree = ttk.Treeview(frame_center, show="headings", height=18, columns=columns)
tree.column("项目", width=150, anchor='center')
tree.column("成绩", width=150, anchor='center')
tree.column("排名", width=100, anchor='center')
# 设置树形视图的表头
for col in columns:
tree.heading(col, text=col)
# 插入数据到树形视图
for result in data:
tree.insert('', 'end', values=(result['name'], result['Score'], result['Eventrank']))
# 树形视图填充整个容器
tree.pack(expand=True, fill='both')
# 创建一个返回按钮
back_button = tk.Button(self.window, text="返回", command=lambda: self.back_to_main(username, password))
back_button.pack(pady=20)
# ...
# ...
在修改后的代码中,我添加了一个frame_center
作为容器来包含Treeview控件,并设置了列宽和表头。然后,使用循环将查询结果插入到Treeview中。
希望这可以帮助你实现展示成绩查询结果的功能!
内容由零声教学AI助手提供,问题来源于学员提问