嗨,我想看看我的列表框中是否有文本,然后将其删除,但由于某些原因,我得到的错误。
return self.tk.call(self._w, 'cget', '-' + key)
TypeError: can only concatenate str (not "int") to str
这是我的代码。
from tkinter import *
import tkinter as tk
root = tk.Tk()
listboxz = Listbox(root,height=40,width=150,bg='pink')
listboxz.pack(side=tk.LEFT,fill='both',expand=True)
listboxz.insert(END, 'hi','bye','see')
if 'bye' in listboxz:
listboxx.delete()
root.mainloop()
你可以使用 listboxz.get(0, 'end')
得到项目列表。
items = listboxz.get(0, 'end')
然后用 items.index()
以查找您要删除的项目。
i = items.index('bye')
listboxz.delete(i)
如果找不到该项目, ValueError
会提高,所以更好地利用 try / except
:
try:
items = listboxz.get(0, 'end')
i = items.index('bye')
listboxz.delete(i)
except ValueError:
# item not found, do nothing
pass