Tkinter Listbox项目的排序
在使用Listbox时常需要处理项目排序工作,下面将以实例讲解。
示例1
这个程序中单击“排序”按钮时默认是从小到大排序,若是勾选复选框再单击“排序”按钮将从大到小排序。
from tkinter import *
def itemsSorted():
if (var.get() == True):
revBool = True
else:
revBool = False
listTmp = list(lb.get(0,END))
sortedList = sorted(listTmp,reverse=revBool)
lb.delete(0,END)
for item in sortedList:
lb.insert(END,item)
fruits = [
"Banana","Watermelon","Pineapple",
"Orange","Grapes","Mango"
]
root = Tk()
root.title("apidemos.com") # 窗口标题
# root.geometry("300x250") # 窗口宽300高210
lb = Listbox(root) # 建立Listbox
for fruit in fruits: # 建立水果项目
lb.insert(END,fruit)
lb.pack(padx=10,pady=5)
# 建立"Order"按钮
btn = Button(root,text="Order",command=itemsSorted)
btn.pack(side=LEFT,padx=10,pady=5)
# 建立排序设置复选框
var = BooleanVar()
cb = Checkbutton(root,text="Sorted from largest to smallest",variable=var)
cb.pack(side=LEFT)
root.mainloop()
输出:
下面是使用默认排序与使用“从大到小”排序的操作界面。