tkinter, Probleme bei Bilddarstellung, Abfrage Checkboxen
Verfasst: Mittwoch 31. Mai 2023, 08:53
Hallo,
ich bin derzeit dran mich ein wenig in Python einzuarbeiten, um mir den Arbeitsalltag zu erleichtern. Hier trifft es sich gut, dass sich meine Partnerin eine Anwendung wünscht, mit der man sich Gerichte aus einer Übersicht aussuchen kann und im Nachgang eine Einkaufsliste bekommt. Ich habe mir gedacht, dass wäre eine ganz gute Übung für eine GUI. Bisher habe ich folgendes programmiert:
Dazu habe ich zwei Fragen:
Frage 1: Wenn ich das Programm ablaufen lasse wird nur beim letzten Frame ein Bild angezeigt. Wieso und wie kann ich das ändern?
Frage 2: Wie kann ich bspw. mit einer Funktion, in dem Fall check_selection, auf die Checkboxen zugreifen? Dies benötige ich, um im Anschluss die Einkaufsliste zu erstellen.
Gerne auch einige Knigge Regeln für den allgemeinem Umgang mit Python (Benennungen, Abstände, etc.).
Besten Dank im Voraus!
ich bin derzeit dran mich ein wenig in Python einzuarbeiten, um mir den Arbeitsalltag zu erleichtern. Hier trifft es sich gut, dass sich meine Partnerin eine Anwendung wünscht, mit der man sich Gerichte aus einer Übersicht aussuchen kann und im Nachgang eine Einkaufsliste bekommt. Ich habe mir gedacht, dass wäre eine ganz gute Übung für eine GUI. Bisher habe ich folgendes programmiert:
Code: Alles auswählen
import tkinter as tk
from PIL import Image, ImageTk
class App(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.scrollbar = tk.Scrollbar(master)
self.scrollbar.pack(side = tk.RIGHT, fill = tk.Y )
def meal(food_name, image_name):
self.frame = tk.Frame(master)
self.frame.pack()
self.food_image = Image.open(image_name)
self.food_image = self.food_image.resize((300,200), Image.Resampling.LANCZOS)
self.food_image = ImageTk.PhotoImage(self.food_image)
self.food_image_label = tk.Label(self.frame, image=self.food_image)
self.food_image_label.pack()
self.food_selection = tk.IntVar()
self.food_checkbox = tk.Checkbutton(self.frame, text=food_name, variable=self.var1)
self.food_checkbox.pack()
meal('Spaghetti', 'Spaghetti1.png')
meal('Spaghetti', 'Spaghetti2.png')
meal('Spaghetti', 'Spaghetti3.png')
meal('Spaghetti', 'Spaghetti3.png')
def check_selection():
pass
def main():
root = tk.Tk()
app = App(root)
app.mainloop()
if __name__ == "__main__":
main()
Frage 1: Wenn ich das Programm ablaufen lasse wird nur beim letzten Frame ein Bild angezeigt. Wieso und wie kann ich das ändern?
Frage 2: Wie kann ich bspw. mit einer Funktion, in dem Fall check_selection, auf die Checkboxen zugreifen? Dies benötige ich, um im Anschluss die Einkaufsliste zu erstellen.
Gerne auch einige Knigge Regeln für den allgemeinem Umgang mit Python (Benennungen, Abstände, etc.).
Besten Dank im Voraus!