当前位置:首页 » tkinter » 正文

tkinter的listbox组件排序方法,源码

  listbox组件排序方法说来也简单,原理是:

  先取得listbox内容的列表,然后把这个列表通过 sorted 方法来排序,再清空列表组件的原来内容,最后把排序好的列表把插入listbox组件就行了。

  如果列表最开始并不是通过一个列表插入,然后就要通过 sortStr1=list(lbox1.get(0,END)) # 得到排序前的列表

  下面是listbox排序的源码:      丶丌皛

from tkinter import *

def  sortjob():
    if var.get()==True:
        datoxiao=True # 从大到小排序
    else:
        datoxiao=False # 从小到大排序
        
    sortStr1=list(lbox1.get(0,END)) # 得到排序前的列表
    sortStr2=sorted(sortStr1,reverse=datoxiao) # 排序后的列表

    lbox1.delete(0,END) # 清空原来列表的内容
    lbox1.insert(END,*sortStr2)  # listbox组件插入排序好列表

root=Tk() # 源码来自wb98.com
root.title('listbox排序 wb98.com')

str1=[5,11,8,2,66,27]
# str1=['5','11','8','2','66','27']

lbox1=Listbox(root)
lbox1.pack()

lbox1.insert(END,*str1) # listbox组件插入一个列表

var=BooleanVar()
ch1=Checkbutton(root,text="降序",variable=var)
ch1.pack()

but1=Button(root,text="开始排序",command=sortjob)
but1.pack(pady=5)

root.mainloop()

运行结果

未命名.GIF

以上是是一串数值来排序,如果是字符来排序,那结果会是怎样?大家可以把str1改一下。

改成 str1=['5','11','8','2','66','27'] 再测试看看。

此文章来自:wb98.com  网站还有相关的系列课程文章,感兴趣的可以前往。

来源:济亨网

本文链接:http://wb98.com/post/352.html

    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号