从列表框Python中删除项目

时间:2018-12-27 20:57:25

标签: python tkinter listbox

我试图从与我的复选按钮连接的功能的列表框中删除一个项目。

ShrimpTempVar=DoubleVar()
ShrimpTempCheck=Checkbutton(menu,variable = ShrimpTempVar, onvalue=5.99, offvalue=0,command=ShrimpTempuraOrder) 

def ShrimpTempuraOrder():
    if ShrimpTempVar.get()==5.99:
        qty=int(QTY2Var.get())
        finalprice=ShrimpTempVar.get()*qty
        listbox.insert(END, "Shrimp Tempura")
        listboxprice.insert( END, finalprice)
    elif ShrimpTempVar.get()==0:
        listbox.delete(0,END)
        listboxprice.delete(0,END)

当我取消选择该项目时,我希望将其删除。 在另一篇文章中,建议执行以下操作:

listBox.Items.Delete(listbox.Items.IndexOf('Calamari'));

但是它说Listbox在Items中没有属性

此外,我不知道索引号,因为它会因我选择不同复选按钮的顺序而改变。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  

问题:如果我不知道索引号,请从列表框Python中删除项目


文档

  • Python Documentation - Common Sequence Operations

    s.index(x[, i[, j]])    
    index of the first occurrence of x in s (at or after index i and before index j)    
    
      

    注意 :( 8)   当在s中找不到x时,index引发ValueError。并非所有实现都支持传递附加参数i和j。这些参数可以有效地搜索序列的各个部分。传递额外的参数大致等效于使用s [i:j] .index(x),只是不复制任何数据,并且返回的索引相对于序列的开始而不是切片的开始。

  • The Tkinter Listbox Widget - get(first, last=None)

      

    此函数返回与给定索引对应的字符串(或给定索引范围内的字符串)。使用get(0,END)获取列表中所有项目的列表。


  1. 使用其标签字符串获取Listbox项目的索引

    label = "Shrimp Tempura"
    idx = listbox.get(0, tk.END).index(label)
    
  2. 删除此索引处的Listbox项目

    listbox.delete(idx)
    

使用Python测试:3.5-TkVersion:8.6