有没有办法循环tkinter列表框中的项目,所以如果两个字符串匹配,我可以检查项目的第一部分并删除并用新项目替换它?
例如,如果我有:
{'breakfast':['bacon','eggs','beans'],
'lunch':['ham', 'cheese', 'bread'],
'dinner':['Steak','Potato','Vegetables']}
并使用字符串格式显示在列表框中:
breakfast: Bacon, Eggs, Beans
lunch: Ham, Cheese, Bread
dinner: Steak, Potato, Vegetables
如果我将breakfast
更改为['Cereal', 'Milk']
,我将如何更改列表框中的条目如果我不知道索引,并且只有字典键继续?
答案 0 :(得分:4)
使用Listbox
的{{3}},get
和delete
方法以及enumerate
来获取索引。
假设你做了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)
如果您执行了import Tkinter
,请将END
替换为Tkinter.END
。
事实上,如果您正在寻找完全匹配(并且您知道该元素肯定在列表框中),您甚至不需要显式循环,而只需使用Python列表& #39; index
方法:
i = my_listbox.get(0, END).index(old_breakfast_string)
my_listbox.delete(i)
my_listbox.insert(i, new_breakfast_string)
答案 1 :(得分:-1)
如果您进行过from Tkinter import *
,则可以在Tkinter中遍历一个列表框,您可以这样做:
for i in my_listbox.get(0, END):
//Your Code Here e.g if i == "bacon":