python tkinter Treeview

https://pythonguides.com/python-tkinter-treeview/#Python_Tkinter_Treeview_Table

  1 import tkinter as tk
  2 from tkinter import ttk
  3 from tkinter import *
  4 
  5 ws = tk.Tk()
  6 ws.title('PythonGuides')
  7 ws.geometry('1000x800')
  8 # ws['bg']='#fb0'
  9 frame1 = ttk.Frame(ws, borderwidth=5, relief="groove", width=100, height=100)
 10 frame1.grid(row=0, column=0)
 11 frame1.propagate(0)
 12 ttk.Label(frame1, text="Explaining Python Tkinter with an Example", background="green").grid(row=0, column=0)
 13 
 14 tv = ttk.Treeview(frame1)
 15 tv['columns'] = ('Rank', 'Name', 'Badge')
 16 tv.column('#0', width=0, stretch=tk.NO)
 17 tv.column('Rank', anchor=tk.CENTER, width=80)
 18 tv.column('Name', anchor=tk.CENTER, width=80)
 19 tv.column('Badge', anchor=tk.CENTER, width=80)
 20 
 21 tv.heading('#0', text='', anchor=tk.CENTER)
 22 tv.heading('Rank', text='Id', anchor=tk.CENTER)
 23 tv.heading('Name', text='rank', anchor=tk.CENTER)
 24 tv.heading('Badge', text='Badge', anchor=tk.CENTER)
 25 
 26 tv.insert(parent='', index=0, iid=0, text='', values=('1', 'Vineet', 'Alpha'))
 27 tv.insert(parent='', index=1, iid=1, text='', values=('2', 'Anil', 'Bravo'))
 28 tv.insert(parent='', index=2, iid=2, text='', values=('3', 'Vinod', 'Charlie'))
 29 tv.insert(parent='', index=3, iid=3, text='', values=('4', 'Vimal', 'Delta'))
 30 tv.insert(parent='', index=4, iid=4, text='', values=('5', 'Manjeet', 'Echo'))
 31 tv.grid(row=1, column=0, sticky="W")
 32 
 33 
 34 def update_item():
 35     selected = tv1.focus()
 36     print(f'selected={selected}')  # selected=3
 37     temp = tv1.item(selected, 'values')
 38     print(f'temp={temp}')  # temp=('Shanti', 'e14', '22000.0')
 39     sal_up = float(temp[3]) + float(temp[3]) * 0.05
 40     tv1.item(selected, values=(temp[0], temp[1], temp[2], sal_up))
 41 
 42 
 43 def show_selected():
 44     print(tv1.selection())
 45 
 46 
 47 def selectmode_none():
 48     tv1['selectmode'] = "none"
 49     print("selectmode=none  用户将不会在 Treeview 上看到任何标记,点击数据无显示标记")
 50 
 51 
 52 def selectmode_browse():
 53     tv1['selectmode'] = "browse"
 54     print("selectmode=browse  用户将能够在一次选择单个项目")
 55 
 56 
 57 
 58 def selectmode_extended():
 59     tv1['selectmode'] = "extended"
 60     print("selectmode=extended 用户就可以同时选择多个项目(按 shift 键可选择多个项目)")
 61 
 62 # 表格数据
 63 datas = [(0, "vineet", "e11", 1000000.00)
 64     , (1, "anil", "e12", 120000.00)
 65     , (2, "ankit", "e13", 41000.00)
 66     , (3, "Shanti", "e14", 22000.00)
 67     , (4, "Shanti", "e14", 22000.00)
 68     , (5, "Shanti", "e14", 22000.00)
 69     , (6, "Shanti", "e14", 22000.00)
 70     , (7, "Shanti", "e14", 22000.00)
 71     , (8, "Shanti", "e14", 22000.00)
 72     , (9, "Shanti", "e14", 22000.00)
 73     , (10, "Shanti", "e14", 22000.00)
 74     , (11, "Shanti", "e14", 22000.00)
 75          ]
 76 
 77 frame2 = ttk.Frame(ws, borderwidth=5, relief="groove", width=300, height=100)
 78 frame2.grid(row=0, column=1)
 79 frame2.propagate(0)
 80 
 81 sl1 = Scrollbar(frame2)
 82 
 83 conten = "How to change Value in Python Tkinter Treeview ,\n Python Tkinter Treeview Scrollbars"
 84 ttk.Label(frame2, text=conten, background="red").grid(row=0, column=0,columnspan=4)
 85 columns = ["id", "name", "eid", "Slary"]
 86 tv1 = ttk.Treeview(frame2
 87                    , show='headings'
 88                    , height=5
 89                    , columns=columns
 90                    )
 91 tv1.grid(row=1, column=0,columnspan=4)
 92 headText = ("id", "name", "eid", "Slary")
 93 for idx in range(len(columns)):
 94     tv1.column(columns[idx], width=70, minwidth=70, anchor=tk.CENTER)
 95     tv1.heading(idx, text=headText[idx])
 96 
 97 for i in range(len(datas)):
 98     tv1.insert(parent='', index=i, iid=i, values=datas[i])
 99 ttk.Button(frame2, text='Increment Salary', command=update_item).grid(row=2, column=1,columnspan=1)
100 # 创建滚动条
101 scroll = tk.Scrollbar(frame2, orient="vertical", command=tv1.yview)
102 scroll['command'] = tv1.yview
103 tv1.config(yscrollcommand=scroll.set)  # 将滚动条填充
104 scroll.grid(row=1, column=5, sticky=S + W + E + N)
105 ttk.Button(frame2, text='Show Selected ', command=show_selected).grid(row=3, column=1,columnspan=1)
106 
107 ttk.Button(frame2, text='Browse', command=selectmode_browse).grid(row=4, column=0)
108 ttk.Button(frame2, text='None', command=selectmode_none).grid(row=4, column=1)
109 ttk.Button(frame2, text='Extended', command=selectmode_extended).grid(row=4, column=2)
110 
111 
112 ws.mainloop()
View Code

原文地址:https://www.cnblogs.com/linbo3168/p/15524826.html