Jim*_*Jim 1 python user-interface listbox tkinter
有没有办法循环遍历 tkinter 列表框中的项目,这样我就可以检查项目的第一部分,如果两个字符串匹配,则删除它并用新项目替换它?
例如,如果我有:
{'breakfast':['bacon','eggs','beans'],
'lunch':['ham', 'cheese', 'bread'],
'dinner':['Steak','Potato','Vegetables']}
Run Code Online (Sandbox Code Playgroud)
这使用字符串格式显示在列表框中:
breakfast: Bacon, Eggs, Beans
lunch: Ham, Cheese, Bread
dinner: Steak, Potato, Vegetables
Run Code Online (Sandbox Code Playgroud)
如果我更改breakfast为['Cereal', 'Milk']如何更改列表框中的条目如果我不知道索引,并且只有字典键可以继续?
使用Listbox's get,delete和insert方法, withenumerate来获取索引。
假设你做了from Tkinter import *:
for i, listbox_entry in enumerate(my_listbox.get(0, END)):
if listbox_entry == old_breakfast_string:
my_listbox.delete(i)
my_listbox.insert(i, new_breakfast_string)
Run Code Online (Sandbox Code Playgroud)
如果您这样做了import Tkinter,请替换END为Tkinter.END.
事实上,如果您正在寻找精确匹配(并且您确定该元素在 Listbox 中),您甚至不需要显式循环,而只需使用 Python 列表的index方法:
i = my_listbox.get(0, END).index(old_breakfast_string)
my_listbox.delete(i)
my_listbox.insert(i, new_breakfast_string)
Run Code Online (Sandbox Code Playgroud)