为什么树在显示数据帧为treeview时不可滚动?

2024-06-28 20:09:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用tkinter将pandas数据帧显示为treeview。所以我填充了treeview,找到了滚动条,但尽管它们可以滚动,但树本身却不能。显示数据的方法可能有问题。 这是我的密码:

def initialize_data(root, data):
    def row_select(event):
        selected_item = tree.selection()[0]
        edit_row_window(tree.item(selected_item, option="values"), columns, selected_item)
    table_frame = tk.Frame(root)
    tree = ttk.Treeview(table_frame, selectmode='browse')
    tree.bind("<Double-1>", row_select)
    columns = data.columns.values.tolist()
    tree["columns"] = columns
    scrl = tk.Scrollbar(table_frame, command=tree.yview(), orient="vertical")
    scrl.pack(side=tk.LEFT, fill=tk.Y)
    scrl2 = tk.Scrollbar(table_frame, command=tree.xview(), orient="horizontal")
    scrl2.pack(side=tk.BOTTOM, fill=tk.X)
    tree.configure(yscrollcommand=scrl.set)
    tree.configure(xscrollcommand=scrl2.set)
    for col in columns:
        tree.column(col, width=75)
        tree.heading(col, text=col)
    for i in range(len(data)):
        tree.insert("", i, values=data.iloc[i, :].tolist())
    tree.pack(side='left', anchor='center')
    table_frame.pack(side=tk.BOTTOM)

我试图滚动的图片 Picture where i try to scroll

在我不知道的地方 and where i don't

谢谢


Tags: columnstreedatatablecolitemframeside
1条回答
网友
1楼 · 发布于 2024-06-28 20:09:51

command=tree.yview()需要是command=tree.yview。使用xview也是如此

当您执行command=tree.yview()时,您将立即调用tree.yview(),然后将结果分配给command属性。command属性需要对可调用函数的引用

相关问题 更多 >