循环tkinter列表框

时间:2015-03-12 09:05:13

标签: python user-interface tkinter listbox

有没有办法循环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'],我将如何更改列表框中的条目如果我不知道索引,并且只有字典键继续?

2 个答案:

答案 0 :(得分:4)

使用Listbox的{​​{3}},getdelete方法以及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":