【问题标题】:Python Tkinter Treeview sort column when clicked on the column header单击列标题时的Python Tkinter Treeview排序列
【发布时间】:2021-12-05 18:26:46
【问题描述】:

我编写了这个程序(python 3.8,它将在 tkinter 树视图中显示任何数据框。我如何绑定单击表头以在单击时对表进行排序。

def view_dfs(df1):
    df1 = df1.replace(np.nan, '', regex=True)
    table = tk.Tk()
    table.geometry("1220x500")
    table.pack_propagate(False)
    table.resizable(0, 0)

    frame = tk.LabelFrame(table, text="Report")
    frame.place(height=485, width=1200)

    # Treeview Widget
    tv1 = ttk.Treeview(frame, style="mystyle.Treeview")
    tv1.place(relheight=1, relwidth=1)

    treescrolly = ttk.Scrollbar(frame, orient="vertical", command=tv1.yview)
    treescrollx = ttk.Scrollbar(frame, orient="horizontal", command=tv1.xview)
    tv1.configure(xscrollcommand=treescrollx.set, yscrollcommand=treescrolly.set)
    treescrollx.pack(side="bottom", fill="x")
    treescrolly.pack(side="right", fill="y")
    
    def Load_excel_df1():
        tv1.delete(*tv1.get_children())
        tv1["column"] = list(df1.columns)
        tv1["show"] = "headings"
        for column in tv1["columns"]:
            tv1.column(column, width = 100) 
            tv1.heading(column, text=column)

        df_rows = df1.to_numpy().tolist()
        for row in df_rows:
            tv1.insert("", "end", values=row)
        return

    def exit_window():
        table.destroy()
        return

    Load_excel_df1()
    table.mainloop()
    return

【问题讨论】:

标签: python-3.x tkinter


【解决方案1】:
tv1 = ttk.Treeview(frame, style="mystyle.Treeview", show="headings")

一)

for a in range(5):
    tv1.heading('#'+str(kol), text="a"+str(a), \
    command= lambda c=a: selc(c))

def selc(c):
    print('c '+str(c))

B)

for a in range(5):
    tv1.heading('#'+str(a), text="#"+str(a))
tv1.bind ('<ButtonRelease-1>', sel)
def sel(b):
    z = tv1.identify("region", b.x, b.y)
    if z == 'heading':
        print('A')
    if z == 'cell':
        print('B')

【讨论】:

  • Stackoverflow 是一个English-Only 站点。请编辑您对英语的回答。
猜你喜欢
  • 2018-03-19
  • 1970-01-01
  • 2020-05-25
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 2015-12-17
  • 1970-01-01
相关资源
最近更新 更多