在定义列表框之后更改列表框的绑定

时间:2014-04-27 11:46:10

标签: python tkinter

我有Listbox,我把它绑定了一个动作,但事情是如果没有结果显示(空列表框),那个绑定仍然有效。因此,对于这些情况,我需要更新该绑定。

这是我的清单

lst = tk.Listbox(self.frm2, selectmode="SINGLE", width="40", yscrollcommand=scrollbar.set)
lst.bind("<Double-Button-1>", open_folder)
lst.pack(fill="both")

对于一个按钮,我知道,即使打包它,我也可以通过类似的方式改变它的选项。

btn1 = tk.Button(root, text="button", command=do_smth)
btn1.pack()

btn1["state"] = "disabled"

所以我试过了,但它没有用。

lst["bind"] = ("<<ListboxSelect>>", do_nothing) 
 _tkinter.TclError: unknown option "-bind"

2 个答案:

答案 0 :(得分:1)

使用unbind方法:

lst.unbind("<Double-Button-1>")

答案 1 :(得分:0)

希望将Bryan's comment转换为答案,因为可能是比切换绑定更好的方法。

def open_folder(event):
    if event.widget.curselection():
        #do your things if anything is selected