ich möchte, dass der Benutzer wählen kann welche Produktkategorien angezeigt bzw. berücksichtigt werden. Um das zu erreichen, stelle ich mir ein Menü bestehend aus einem Checkbutton pro Kategorie vor. Die Status dieser Checkbuttons sollen auch nach Beenden des Programms erhalten bleiben - also gespeichert werden, damit sie bei Programmstart entsprechend vorbelegt werden. Da ich an anderer Stelle bereits mit JSON arbeite, bietet es sich an das hier auch zu verwenden, um eine Art Konfigurationsdatei zu erstellen, denke ich.
Es ist mir nicht so wichtig, dass die Kategorien direkt nach Klick auf den Checkbutton angezeigt bzw. nicht mehr angezeigt werden. Nach einem Neustart des Programms reicht vollkommen, da bestimmte Kategorien saisonbedingt eventuell wochenlang nicht gebraucht werden.
Die Checkbuttons sollen zudem auch noch dynamisch generiert werden, da eventuell mal eine Kategorie hinzukommen kann.
Gehen wir mal davon aus das Ganze würde schon funktionieren und hätte eine Konfigurationsdatei "settings.txt" erzeugt. Der Benutzer braucht derzeit also nur die Kategorien "Äpfel" und "Kartoffeln".
Der Inhalt meiner "settings.txt" lautet testweise:
Code: Alles auswählen
{"categories":{"Äpfel": 1, "Birnen": 0, "Kartoffeln": 1}}
Mein Ansatz dazu:
Code: Alles auswählen
# Konfiguration lesen
file = open("settings.txt", "r")
settings = json.load(file)
file.close()
checkbuttons = {}
for category in settings["categories"]:
self.var = tk.IntVar()
checkbuttons[category] = self.var
checkbuttons[category].set(1)
show_category_menu.add_checkbutton(label=category, variable=checkbuttons[category])
Code: Alles auswählen
{'Äpfel': <tkinter.IntVar object at 0x03B69910>, 'Birnen': <tkinter.IntVar object at 0x03B69930>, 'Kartoffeln': <tkinter.IntVar object at 0x03B69970>}