# Unix-Nutzer: Shebang einfuegen!
import tkinter
import tkinter.ttk as ttk
win=ttk.tkinter.Tk()
win.geometry("500x200") # set window size
cbTv = ttk.tkinter.StringVar() # textvariable für combobox
cbInList = ["Hello"] # Liste fuer die Listbox der combobox. Das "Hello"
# habe ich nur zum Test eingefuegt, um zu sehen
# ob die Bindung prinzipiell funktioniert. Beim Erzeugen
# der Combobox wertet diese cbInList aus.
cbIn=ttk.Combobox(textvariable=cbTv,values=cbInList) # Combobox
cbIn.pack(fill="x", padx=5, pady=2)
def cbReturn(event): # Unsere Callback-Funktion (siehe letzte Zeile)
expr = cbTv.get() # Benutzereingabe holen
cbTv.set(expr+" Yeah, es funktioniert") # Kontrolle ob cbTv.set(...) funktioniert
cbInList.insert(0,expr) # Benutzereingabe an erste Stelle in unsere list -
# NICHT ZUR LISTBOX DER COMBOBOX(!) - hinzufuegen
# Ab hier hatte ich dann ein Problem. Naemlich der Listbox der Combobox zu
# signalisieren, dass sich die Liste geaendert hat, und die Listbox aktualisiert
# werden muss. Folgende (auskommentierte) Zeile hat nicht funktioniert:
# cbIn.values = cbInList # *** DAS FUNKTIONIERT NICHT! ***
# Wir muessen es folgendermassen machen:
cbIn["values"] = cbInList # Beachten Sie die Anfuehrungszeichen um das Attribut "values"!
# Hier ist unsere kleine Beispiel-Callback-Funktion, zum Hinzufuegen eines Werts zur
# Listbox einer Combobox zu Ende
# Jetzt muessen wir noch dafuer; sorgen, dass obige Funktion aufgerufen wird,
# wenn der Benutzer die Eingabetaste (in Python mit "<Return>" bezeichnet) drueckt:
cbIn.bind('<Return>',cbReturn) # cbReturn aufrufen, wenn Benutzer die Eingabetaste drueckt
# Wir binden die