我能够从数据库中删除项目,但仅在关闭应用程序并再次运行时显示。
def delete_command():
backend.remove(selected[0])
def get_item(event):
global selected
index=lb.curselection()
selected= lb.get(index)
return selected
lb= Listbox(window)
lb.grid(row=4, column=0, rowspan= 5, columnspan=1)
lb.bind("<<ListboxSelect>>", get_item)
b2 = Button(window, text="Delete", command=delete_command)
b2.grid(row=5, column=2)
答案 0 :(得分:1)
您似乎忘记了从列表框删除项目。
def delete_command():
backend.remove(selected[0])
lb.delete(index)
def get_item(event):
global selected,index
index=lb.curselection()
selected= lb.get(index)
return selected
lb= Listbox(window)
lb.grid(row=4, column=0, rowspan= 5, columnspan=1)
lb.bind("<<ListboxSelect>>", get_item)
b2 = Button(window, text="Delete", command=delete_command)
b2.grid(row=5, column=2)
我也很遗憾地说,您的代码质量很低。 除非确实有必要,否则不要全局定义变量。
答案 1 :(得分:0)
对于您的情况,无需绑定<<ListboxSelect>>
即可获取所选项目。只需在delete_command()
中获得所选项目:
def delete_command():
selected = lb.curselection()
if selected:
backend.remove(selected[0])
lb.delete(selected)
如果在列表框中选择一个项目时需要做其他事情,则需要绑定事件。