如果名称是几个,如何只将一个项目插入组合框

时间:2018-04-03 16:06:35

标签: python tkinter combobox

如果项目的名称在元组中出现多于一个,我想只用一个项目填充combobox,只显示一个名称。如果元组中的名称是一个,那么应该出现一个名称。

例如,在我的元组中,sally出现两次,我只想在combobox中插入一个

我将非常感谢您的帮助。

from tkinter import *
from tkinter import ttk


rows = ((1, 'ben', 'journalism', 18), (2, 'sally', 'performing arts', 22), 
(3,"dan","information technology",32),
(2, 'ben', 'footballer', 70),(2, 'sally', 'arts', 56),(3,"dan","technology",52),(20,"frank","technology",52)


root = Tk()
root.geometry("200x200")

cb = ttk.Combobox(root)
cache = list()

for row in rows:
    cache.append(row[1])
    cb['values'] = cache

cb.pack()

root.mainloop()

2 个答案:

答案 0 :(得分:0)

您可以创建set()名称,然后使用它来填充组合框

答案 1 :(得分:0)

在行中有两个sally值,并且它们都添加它们 - 你可以在循环中用一个简单的if语句来改变它。

for row in rows:
    if row[1] not in cache:
        cache.append(row[1])