ich erstelle gerade eine Anwendung mit diversen Combobox Widgets, wobei die möglichen Eingaben einiger Boxes von den Eingaben in anderen abhängig sein sollen. Das Problem wollte ich lösen, indem ich die Aktivierung einer Combobox als Event festlege und dann die dort erlaubten Eingaben bestimme. Läuft aber leider nicht.
Das folgende Beispiel zeigt, was ich meine. In der ersten Combobox kann man zwischen 'Pommes' und 'Reis' wählen. Je nach Auswahl soll man dann in der zweiten zwischen 'Ketchup' und 'Majo' (Pommes) oder 'Sojasauce' und 'Süßsauer' (Reis) wählen können.
Code: Alles auswählen
# Python Version 3.2.2
import tkinter as tk
from tkinter import ttk
class Test(object):
def __init__(self):
self.w = tk.Tk()
self.Beilage = tk.ttk.Combobox(values = ['Pommes', 'Reis'])
self.Beilage.pack()
self.Sauce = tk.ttk.Combobox(values = self.Saucenliste)
self.Sauce.bind('<Activate>', self.Saucenauswahl(self.Beilage.get()))
# Saucenauswahl wird nicht aufgerufen
self.Sauce.pack()
self.w.mainloop()
def Saucenauswahl(self, Beilage):
print('Saucenauswahl wurde aufgerufen')
if Beilage == 'Pommes':
self.Saucenliste = ['Ketchup', 'Majo']
elif Beilage == 'Reis':
self.Saucenliste = ['Sojasauce', 'Süßsauer']
else:
self.Saucenliste = []
Test()
Foxxi