Tkinter 建立层级式的Treeview
层级式(Hierarchy)的相关知识在前几节已经介绍过,现在读者只要在图标栏先建立top-level的项目id,然后将相关子项目放在所属的top-level项目id即可。
示例1
建立层级式的Treeview控件内容。
from tkinter import *
from tkinter.ttk import *
root = Tk()
root.title("apidemos.com")
asia = {"China": "Beijing", "Japan": "Tokyo", "Thailand": "Bangkok", "South Korea": "Seoul"}
euro = {"UK": "London", "France": "Paris", "Germany": "Berlin", "Norway": "Oslo"}
# 建立Treeview
tree = Treeview(root,columns=("capital"))
# 建立栏标题
tree.heading("#0",text="Country") # 图标栏
tree.heading("capital",text="Capital")
# 建立id
idAsia = tree.insert("",index=END,text="Asia")
idEuro = tree.insert("",index=END,text="Europe")
# 建立idAsia底下内容
for country in asia.keys():
tree.insert(idAsia,index=END,text=country,values=asia[country])
# 建立idEuro底下内容
for country in euro.keys():
tree.insert(idEuro,index=END,text=country,values=euro[country])
tree.pack()
root.mainloop()
输出:
在上述程序第8、9行是建立亚洲asia和欧洲euro国家与首都的字典数据。第17、18行则是建立图标栏top-level的id,分别是idAsia和idEuro。建立层级式数据最关键的是使用insert( )方法时,必须在第一个参数放置top-level的id,第20、21行是建立亚洲国家国名与首都数据,所以第21行的insert( )方法的第一个参数是idAsia,这表示插入的数据放在idAsia层级下,程序代码设计如下。
tree.insert(idAsia,...)
第23、24行是建立欧洲国家国名与首都数据,所以第24行的insert( )方法的第一个参数是idEuro,这表示插入的数据放在idEuro层次下,程序代码设计如下。
tree.insert(idEuro,...)