试图在Python中定位和删除listbox中的字符串tktinter

问题描述 投票:0回答:1

嗨,我想看看我的列表框中是否有文本,然后将其删除,但由于某些原因,我得到的错误。

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()
python if-statement tkinter listbox
1个回答
1
投票

你可以使用 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
© www.soinside.com 2019 - 2024. All rights reserved.