本文实现效果如下:
因为tkinter没有现成的listview可用, 常用ttk库的Treeview实现,可以把listview看着是简化版的treeview。
代码演示:
1 2 3 4 5 6 7 8 9 10 | from tkinter import * from tkinter.ttk import * root = Tk() tv = Treeview(root,columns = ( 'c1' , 'c2' ),show = 'headings' ) listdata = [( 'columns' , '列id列表' ),( 'displaycolumns' , '显示列' ),( 'height' , '高度(单位为行)' ),( 'padding' , '填充' ),( 'selectmode' , '选中控制' ),( 'show' , '树/列显示' )] for a,b in listdata : tv.insert('',END,values = (a,b)) print (a,b) tv.pack(fill = BOTH) mainloop() |
tkinter.ttk库是从Tk8.5引入,可以实现本地窗口风格,并良好地运行在绝大多数平台中。
Treeview常用于展示带层级的数据,每一个数据项(data item)可以有一个文本、图片和多列数据值(colum values)。数据列的显示排序可以通过diaplaycolumns来设定,treeview还可以显示数据列的头部。
每个数据项(item)有一个唯一的名字(name)和ID,如果创建item时未指定ID会自动生成。特别地,有一个名字为{}的根项(root item)做为所有项的根,根项不显示在treeview中。每个item可以设置一个标签列表用于绑定事件和控制item的显示。
Treeview支持横向和竖向的滚动条,可通过xscrollcommand、yscrollcom.mand和Treeview.xview()、Treeview.yview()设置和控制。