Seite 1 von 1

Ergebnisausgabe Schleife in Label

Verfasst: Montag 4. Mai 2020, 21:46
von Tobias74
Hallo, beschäftige mich grade mit den Möglichkeiten von Tkinter. Habe folgendes Problem. Ich möchte die Ergebnisse aus der Schleife in der Funktion in ein Label ausgeben. Wieso erfolgt hier in dem Beispiel in der Funktion nur die Ausgabe des letzten Wertes der Schleife? Gibt es eine elegantere Möglichkeit solche Ergebnisse untereinander für jeden Durchlauf auszugeben?
Vielen Dank

from tkinter import *
fenster = Tk()

fenster.geometry("400x300")
fenster.title("Zinsrechner")

def berechnen():
global k
k=float(kapital.get())
z=float(zins.get())
t=int(dauer.get())
for i in range(1,t+1):
k=k*(1+(z/100))
label_ergebnis=Label(fenster, text= "Kapital im "+ str(i) + " Jahr sind " + str(round(k,2))+ "EURO")
label_ergebnis.grid(row=4, column=0)

kapital =Entry(fenster, width=20)
kapital.grid(row=0, column=1)
zins= Entry(fenster, width=20)
zins.grid(row=1, column=1)
dauer = Entry(fenster, width=20)
dauer.grid(row=2, column=1)

label_kapital=Label(fenster, text="Anfangskapital", padx=30, pady=5)
label_kapital.grid(row=0, column=0, pady=5)
label_zins=Label(fenster, text="Zinssatz in %", padx=30, pady=5)
label_zins.grid(row=1, column=0,pady=5 )
label_dauer=Label(fenster, text="Anlagedauer in Jahren", padx=30, pady=5)
label_dauer.grid(row=2, column=0, pady=5)

button_berechnen=Button(fenster, text="berechnen", command=berechnen)
button_berechnen.grid(row=3, column=0, pady=40)

button_beenden=Button(fenster, text="beenden", command=fenster.destroy)
button_beenden.grid(row=3, column=1)

fenster.mainloop()

Re: Ergebnisausgabe Schleife in Label

Verfasst: Montag 4. Mai 2020, 22:25
von __blackjack__
@Tobias74: Wenn man viele Label alle in die selbe Gridzelle setzt, sind die halt alle übereinander und man sieht am Ende nur das oberste.

Re: Ergebnisausgabe Schleife in Label

Verfasst: Dienstag 5. Mai 2020, 18:13
von Tobias74
@blackjack: danke dir. habe grade noch ein bißchen rumprobiert und einfach in der Funktion immer eine neue Reihe in der Schleife eingefügt. "label_ergebnis.grid(row=i+3, column=0)"
Wahrscheinlich nicht die eleganteste Lösung, aber es funktioniert. Kannst du mir ggf. einen HInweis geben, wie ich automatisch einen Scrollbalken
im Fenster bekomme, wenn die Zeilen aus dem Bild laufen.
Vielen Dank und viele Grüße

Re: Ergebnisausgabe Schleife in Label

Verfasst: Mittwoch 6. Mai 2020, 09:46
von peterpy
Hallo Tobias74,

Bitte vermeide Sternchenimporte!
Setze den Code zwischen die Code-Tags (das Feld </> anklicken) wenn Du erwartest, dass jemand deinen Code verstehen will.

Zum Scrollen; setz deine Graphik in ein Canvas, PanedWindow, oder gib die Ergebnisse in einer Listbox aus.

Gruss Peter