|
发表于 2021-1-8 15:46:26
|
显示全部楼层
- import tkinter
- def newlistbox(oldlist):
- gettext = entry.get()
- newlist = sorted(oldlist, key=str.lower)
- listbox.delete(0, 'end')
- for each in newlist:
- if gettext in each:
- listbox.insert('end', each)
- listbox.selection_set(0)
- listbox.bind('<<ListboxSelect>>', newtext)
- def newtext(event):
- v = event.widget.curselection()
- text = event.widget.get(v)
- entry.delete(0, 'end')
- entry.insert(0, text )
-
- def textchange(event):
- newlist = []
- gettext = event.widget.get().strip().lower()
- if event.keysym:
- if gettext:
- for each in testlist:
- if gettext in each.lower():
- newlist.append(each)
- else:
- newlist = testlist
- newlistbox(newlist)
- root = tkinter.Tk()
- entry = tkinter.Entry(root)
- listbox = tkinter.Listbox(root)
- entry.bind('<KeyRelease>', textchange)
- entry.grid(row=0, column=0)
- listbox.grid(row=1, column=0)
- testlist = ('apple', 'banana', 'Cranberry',
- 'dogwood', 'alpha', 'Acorn',
- 'Anise', 'Strawberry' )
- newlistbox(testlist)
- root.mainloop()
复制代码 |
|