python - Tkinter 过滤列表框不会更新
问题描述
我正在尝试通过按钮激活过滤列表框,列表框本身可以正常工作,但是当我在函数内缩进它时,过滤功能停止工作,找到下面的代码:
import tkinter as tk
a = ['Adam', 'Lucy', 'Barry', 'Bob']
def bot(*args):
root = tk.Tk()
def update_listbox(*args):
search_term = search_var.get()
listbox.delete(0, tk.END)
for item in all_items:
if search_term.lower() in item.lower():
listbox.insert(tk.END, item)
search_var = tk.StringVar()
search_var.trace('w', update_listbox)
searchbox = tk.Entry(root, textvariable=search_var)
searchbox.pack(fill=tk.X, expand=False)
listbox = tk.Listbox(root)
for i in a:
listbox.insert(tk.END, i)
listbox.pack()
all_items = listbox.get(0, tk.END)
root.mainloop()
RootTest = tk.Tk()
bott = tk.Button(RootTest, text = 'test', )
bott.pack()
bott.config(command= bot)
RootTest.mainloop()
解决方案
推荐阅读
- c++ - 只特化类模板的一种方法
- python - 从 matplotlib 手动修改对象时木马的问题吗?
- kubernetes - 在 kubernetes 中,什么时候在同一个节点中复制 pod 才有意义?
- python - 使用带有 () 的函数/方法等变量的代码?
- java - 将位图变量传递给扩展类中的方法
- java - 我是否需要对无效输入执行 Try/Catch 块,或者 while 循环是否足够?
- javascript - 如何使用 multer 上传文件数组
- python - Django - 创建新对象时更新 ForeignKey
- css - 滚动到 div 滚动条的 50%
- sql - 在 MS Access 中将儒略日期转换为常规日期