【问题标题】:Trying to locate and delete string in listbox in Python tktinter尝试在 Python tkinter 的列表框中查找和删除字符串
【发布时间】:2020-05-19 14:55:23
【问题描述】:

您好,我正在尝试查看文本是否在我的列表框中,然后将其删除,但由于某种原因,我收到错误消息

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()

【问题讨论】:

  • listboxx.delete().listboxx 是什么?你是在别的地方定义的吗?
  • 意思是 listboxz.delete 抱歉

标签: python if-statement tkinter listbox


【解决方案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

【讨论】:

  • 这似乎是一个非常好的答案,我会尝试一下非常感谢您
猜你喜欢
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
相关资源
最近更新 更多