ich habe gerade ein Codebeispiel gefunden das ich nicht verstehe, evtl. kann mir das jemand erläutern und Licht in die Dunkelheit bringen.
Es geht um folgenden Post bei stack overflow https://stackoverflow.com/questions/624 ... er-but-got
Der Code ist folgender:
Code: Alles auswählen
from tkinter import *
def callback(text, wid):
if str.isdigit(text) or not text:
text = text if text else 0
if wid == str(entry3):
n = entry2.get() if entry2.get() else 0
if wid == str(entry2):
n = entry3.get() if entry3.get() else 0
ent1.set(int(n) + int(text))
return True
return False
root = Tk()
ent1 = IntVar()
vcmd = (root.register(callback), '%P', '%W')
frame = Frame(root)
frame.pack()
entry1 = Entry(frame, width=5, textvariable=ent1)
entry2 = Entry(frame, width=5, validate='all', validatecommand=vcmd)
entry3 = Entry(frame, width=5, validate='all', validatecommand=vcmd)
entry1.pack(side=LEFT)
entry2.pack(side=LEFT)
entry3.pack(side=LEFT)
root.mainloop()
Ich verstehe mehrere Zeilen in der Methode Callback nicht.
Es geht los mit:
Code: Alles auswählen
if str.isdigit(text) or not text:
- Laut Python Doku gibt isidigit boolean zurück, warum wird dieser Wert dann in einen String umgewandelt ?
- Warum funktioniert diese If-Abfrage, wird dort nicht ein boolen mit einem String (text) verglichen ?
Code: Alles auswählen
text = text if text else 0
Variable text ist gleich variable text wenn variable text sonst 0 ?
Über ein wenig Aufklärung würde ich mich freuen
Gruß Kai