Combobox soll zweite Combobox beeinflussen

Fragen zu Tkinter.
Antworten
ll9
User
Beiträge: 34
Registriert: Samstag 9. Februar 2013, 15:13

Hallo,

ich wollte gerad mit Tkinter einen Code schreiben, wo eine Combobox auf eine andere reagiert. Ich geb hier mal einen Beispielcode:

Code: Alles auswählen

from Tkinter import *
import ttk

root = Tk()

list = ['Mathe', 'Deutsch']
dict = {'Mathe': [0, 4, 7], 'Deutsch': [4, 3, 2], '': ''}

Fach = StringVar()
Note = IntVar()

ttk.Combobox(root, value = list, textvariable = Fach).grid(row = 1, column = 1)
ttk.Combobox(root, value = dict[Fach.get()], textvariable = Note).grid(row = 1, column = 2)

root.mainloop()
Ich bin noch ziemlicher Anfänger mit Tkinter. Ich will, dass die zweite Combobox, wenn man bei der ersten z.b 'Mathe' setzt 0, 4 und 7 zur Auswahl hat. Wenn man die erste jetzt auf 'Deutsch' setzt sollte die zweite halt 4, 3 und 2 zur Auswahl haben. Was mache ich genau falsch? Was muss ich machen, damit es funktioniert?
BlackJack

@ll9: Du musst halt Code schreiben der *das tut* in nicht hoffen dass da irgendwie auf magische Weise Python plötzlich anders funktioniert als sonst. Dein `value` beim erstellen der zweiten Combobox ist genau das ein *Wert* der genau einmal ausgewertet wird, nämlich vor dem Aufruf von `Combobox()` und dem Aufruf dann übergeben wird.

Du möchtest auf ein Ereignis einer `Combobox` reagieren. Laut Dokumentation gibt es ein Ereignis wenn der Inhalt durch Auswahl aus dem Dropdown-Menü geändert wird: http://docs.python.org/2.7/library/ttk. ... ual-events

Da müsste man jetzt mit `bind()` eine entsprechende Behandlung dran binden.
Antworten