Wert von Funktion in Label ausgeben

Fragen zu Tkinter.
Antworten
Blue-Cid
User
Beiträge: 7
Registriert: Sonntag 6. Mai 2018, 12:33

Hallo,

ich möchte erstmal schreiben, dass ich blutiger Anfänger bin. Ich habe in den letzten zwei Wochen mehrere verschieden Python Tutorials gelesen und nachprogrammiert. Ich wusste schon, dass Programmieren lernen schwer ist, muss allerdings gestehen, für mich ist es noch wesentlich schwerer als ich zu Anfang dachte.

Jetzt aber zum Problem.

Ich habe zwei Buttons erstellt. Der erste Button soll bei jedem Klick einfach nur +1 dazu addieren und in einem Label ausgeben.

Der zweite Button soll bei Klick ebenfalls +1 in einem zweiten Wert dazu addieren und dann aber, einen Gesamtwert mit einer mathematischen Gleichung aus dem Wert des ersten Labels mit diesem zweiten Wert berechnen. Dieser Gesamtwert soll dann in einem zweiten Label dargestellt werden.

Ich poste jetzt mal den Code (Bitte nicht aus allen Wolken fallen, es ist das erste Programm, dass ich alleine erstelle, daher gibt es sicherlich viele Fehler)

Code: Alles auswählen

import tkinter

i = 0
zero = 0


def handleButton(event):
	global i
	i = i + 1
	v['text'] = "Aufzählung: "+str(i)
			

def pushButton(event):
	global zero
	zero = zero + 1
	Gesamt = i / zero*10
	f['text'] = ""+str(Gesamt)





top = tkinter.Tk()


# AUSGABE AUFZÄHLUNG

v = tkinter.Label(top,text='Aufzählung: 0')
v.grid(row=0,column=0)

# AUSGABE WERT2

f = tkinter.Label(top,text='Wert 2: ')
f.grid(row=2,column=0)


#BUTTONS

b = tkinter.Button(top,text='Klick')
b.grid(row=1,column=0)

b0 = tkinter.Button(top,text='Klick')
b0.grid(row=2,column=2)

b.bind('<Button-1>', handleButton)
b0.bind('<Button-1>', pushButton)


top.mainloop()

Der Code funktioniert soweit, aber der Wert2 soll auch geändert werden, wenn der erste Wert (die Aufzählung) sich ändert. Also der zweite Wert soll im Label bei Klick auf beide Buttons aktualisiert werden.

Ich hoffe ich habe das verständlich erklärt.


Über Hilfe wäre ich sehr erfreut.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Blue-Cid

Kannst du das folgende Skript ausprobieren: (Sorry habe dein Skript für mich ein wenig abgeändert)

Code: Alles auswählen

import tkinter

def handleButton(event):
   top.i = top.i + 1
   top.v['text'] = "Aufzählung: "+str(top.i)
   pushButton()
         

def pushButton(event=None):
   top.zero = top.zero + 1
   total = top.i / top.zero * 10
   print(top.i, top.zero, total)
   top.f['text'] = "" + str(total)

top = tkinter.Tk()

top.i = 0
top.zero = 0

# AUSGABE AUFZÄHLUNG

top.v = tkinter.Label(top, bg='gray95', text='Aufzählung: 0', relief='sunken')
top.v.grid(row=0, column=1, sticky='wesn', pady=2)

# AUSGABE WERT2

top.f = tkinter.Label(top, bg='gray95', text='Wert 2: ', relief='sunken')
top.f.grid(row=1, column=1, sticky='wesn', pady=2)


#BUTTONS

b = tkinter.Button(top, text='Handle Button')
b.grid(row=0, column=0, sticky='wesn')
b.bind('<Button-1>', handleButton)

b0 = tkinter.Button(top, text='Push Button')
b0.grid(row=1, column=0,  sticky='wesn')
b0.bind('<Button-1>', pushButton)


top.mainloop()
Gruss wuf :wink:
Take it easy Mates!
Blue-Cid
User
Beiträge: 7
Registriert: Sonntag 6. Mai 2018, 12:33

Hey, vielen Dank!

Das klappt wunderbar! :D
Antworten