今天延续昨天的Listbox做一些更进阶的操作,加入删除、项目的排序和拖曳项目,这些都是平常常会用到的。
♠♣今天的文章大纲♥♦
用Entry输入内容,案加入按钮後便会加入Listbox,案删除後就会删除。
import tkinter as tk
root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('300x300')
def Added():
g = entry.get()
if (len(g.strip()) ==0):
return
lb.insert ('end', g)
entry.delete(0, 'end')
def Deleted():
index = lb.curselection ()
if (len (index) == 0):
return
lb.delete(index)
entry = tk.Entry(root)
entry.grid(row=0, column=0, padx=5, pady=5)
bAdd = tk.Button (root, text="Add",width=10, command=Added)
bAdd.grid(row=0, column=1, padx=5, pady=5)
lb = tk.Listbox (root)
lb.grid(row=1,column=0,columnspan=2,padx=5,sticky='w')
bDel = tk.Button(root,text="Delete",width=10,command=Deleted)
bDel.grid(row=2,column=0,padx=5,pady=5 ,sticky='w')
root.mainloop()
执行结果⬇⬇⬇
按Add键
加入项目
选取项目
按Delete键
设定要从小到大排或是从大到小排列,执行後可以从选相框去做选择。
import tkinter as tk
root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('300x300')
def choise():
if (var.get() == True):
revBool=True #小到大排序
else:
revBool=False #大到小排序
listTmp=list (lb.get (0,'end'))
sl= sorted(listTmp,reverse=revBool)
lb.delete(0, 'end')
for item in sl:
lb.insert ('end', item)
singers =["Sam Smith", "Of Monsters and Men", "The Cure", "Bruno Mars", "Taylor Swift", "John Legend"]
lb= tk.Listbox (root)
for singer in singers:
lb.insert ('end', singer)
lb.pack(padx=10, pady = 5)
b = tk.Button(root, text="Sort", command=choise)
b.pack(side = 'left', padx = 10, pady = 5)
var = tk.BooleanVar()
cb = tk.Checkbutton (root, text="小到大", variable=var)
cb.pack(side='left')
root.mainloop()
执行结果⬇⬇⬇
一开始
大到小
小到大
可以将选项拖曳换位置。
import tkinter as tk
root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('300x300')
def get(event):
lb.index = lb.nearest(event.y)
def choise(event):
newIndex = lb.nearest(event.y)
if newIndex < lb.index:
x=lb.get (newIndex)
lb.delete(newIndex)
lb.insert(newIndex+1,x)
lb.index = newIndex
elif newIndex > lb.index:
x = lb.get(newIndex)
lb.delete(newIndex)
lb.insert(newIndex-1,x)
lb.index= newIndex
singers =["Sam Smith", "Of Monsters and Men", "The Cure", "Bruno Mars", "Taylor Swift", "John Legend"]
lb = tk.Listbox(root)
for singer in singers:
lb.insert ('end', singer)
lb.bind("<Button-1>",get)
lb.bind("<B1-Motion>", choise)
lb.pack(padx = 1 , pady=10)
root.mainloop()
执行结果⬇⬇⬇
点选一个选项
将其拖曳至想要的位置
Listbox就到今天了,明天会开始讲OptionMenu7部分罗~~~
import matplotlib.pyplot as plt import requests im...
是这样的,我曾经在新闻上看到说罗东的农夫有种植的西瓜被偷, 我在想除了监视器以外,还有没有甚麽方法可...
今天要来补充 Pointfree 的概念, 这也同样和 pipe 有关。 function 运算的过...
SEO 要做到基本工是很简单的,就是把 Search Console 上面显示的错误都解决掉,上面说...
听《失败的逻辑》这本书後, 我去思考,在这样复杂多变的世界里,多方面讯息冲刷脑袋的我,留心、注意、有...