You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的Tkinter中以表格形式展示字典数据?已尝试代码及TreeView无效

解决CustomTkinter展示世界杯冠军表格数据的问题

你可以使用CustomTkinter结合CTkTreeview来实现表格展示,以下是修正后的完整代码:

import customtkinter
from customtkinter import CTkTreeview

def display():
    # 示例数据,实际使用你的data_dict
    data_dict = {
        "Brazil": [1958, 1962, 1970, 1994, 2002],
        "Germany": [1954, 1974, 1990, 2014],
        "Italy": [1934, 1938, 1982, 2006],
        "Argentina": [1978, 1986, 2022],
        "France": [1998, 2018],
        "Uruguay": [1930, 1950],
        "England": [1966],
        "Spain": [2010]
    }
    
    root2 = customtkinter.CTk()
    root2.title('View Results')
    root2.geometry('600x400')
    
    # 创建框架
    new_frame = customtkinter.CTkFrame(root2)
    new_frame.pack(fill="both", expand=True, padx=10, pady=10)
    
    # 创建Treeview表格
    tree = CTkTreeview(new_frame, columns=("Country", "Wins", "Years"), show="headings")
    
    # 设置表头和列宽
    tree.heading("Country", text="国家")
    tree.heading("Wins", text="夺冠次数")
    tree.heading("Years", text="夺冠年份")
    
    tree.column("Country", width=150)
    tree.column("Wins", width=100, anchor="center")
    tree.column("Years", width=300)
    
    # 插入数据
    for country in sorted(data_dict):
        win_count = len(data_dict[country])
        win_years = ", ".join(map(str, data_dict[country]))
        tree.insert("", "end", values=(country, win_count, win_years))
    
    # 表格布局
    tree.pack(fill="both", expand=True)
    
    root2.mainloop()

# 调用测试
display()

关键说明:

  • CTkTreeview是CustomTkinter适配的表格组件,风格和窗口统一
  • 通过columns定义表格列,show="headings"隐藏默认空白首列
  • 遍历排序后的国家列表插入数据,将年份列表转为逗号分隔的字符串
  • 用pack(fill="both", expand=True)让表格自适应窗口大小

如果你的CustomTkinter版本不支持CTkTreeview,可以替换为tkinter的ttk.Treeview,修改导入和创建部分即可:

import tkinter.ttk as ttk

# 替换Treeview创建代码
tree = ttk.Treeview(new_frame, columns=("Country", "Wins", "Years"), show="headings")

内容的提问来源于stack exchange,提问作者pranay brahmbhatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:10:32