Вы не можете append()
в ttk.Combobox
.
Вы можете только назначить новый список со всеми значениями или получить старые значения, преобразовать в список, append()
или extend()
в этот список и возвращая этот список.
def callback1(event):
data = list(lbox['values'])
data.append("new value")
lbox['values'] = data
или много элементов
def callback1(event):
data = list(lbox['values'])
data.extend( ["value1", "value2", "value3" ])
lbox['values'] = data
Кстати: если вы сохраняете исходный список, который вы добавляете в Combobox
, вы также можете использовать его для замены значений
ldata = ['A', 'B', 'C']
lbox = ttk.Combobox(window, values=ldata)
и выше
ldata.append(...)
lbox['values'] = ldata
import tkinter as tk
import tkinter.ttk as ttk
# --- functions ---
#def callback1(event):
# ldata.append(filter_mode.get())
# lbox['values'] = ldata
def callback1(event):
data = list(lbox['values'])
#data.append(filter_mode.get())
data.extend( ["value1", "value2", "value3" ])
lbox['values'] = data
# --- main ---
window = tk.Tk()
filter_mode = tk.StringVar(window)
cdata = ['A', 'B', 'C']
cbox = ttk.Combobox(window, textvariable=filter_mode, state="readonly", values=cdata)
cbox.pack()
cbox.bind("<<ComboboxSelected>>", callback1)
ldata = ['X', 'Y', 'Z']
lbox = ttk.Combobox(window, values=ldata)
lbox.pack()
window.mainloop()