我有这个清单:
lista=Listbox(root,selectmode=MULTIPLE)
lista.grid(column=0,row=1)
lista.config(width=40, height=4)
lista.bind('<<ListboxSelect>>',selecionado)
附加到此函数:
def selecionado(evt):
global ativo
a=evt.widget
seleção=int(a.curselection()[0])
sel_text=a.get(seleção)
ativo=[a.get(int(i)) for i in a.curselection()]
但如果我选择了某个内容,然后取消选择,则会出现以下错误:
seleção=int(a.curselection()[0])
IndexError: tuple index out of rangeenter code here
我怎样才能防止这种情况发生?
最佳答案
取消选择项时,函数curselection()返回一个空元组。尝试访问空元组上的元素[0]时,会出现索引超出范围错误。解决办法是测试这种情况。
def selecionado(evt):
global ativo
a=evt.widget
b=a.curselection()
if len(b) > 0:
seleção=int(a.curselection()[0])
sel_text=a.get(seleção)
ativo=[a.get(int(i)) for i in a.curselection()]
TkInter Listbox docs。