Zunächst entschuldige ich mich, dass ich OOP nicht benutzt habe. Ich habe mich einfach entschieden, die Komplexität für solch ein kleines Programm zu vermeiden. Also hier ist mein Programm (im Grunde ist es ein Eintrag Widget, das einen Text ermöglicht, die der ganzen Zahlen bestehen nur maximale Länge beträgt 5):Ähnliche Validierungsfunktionen funktionieren nicht
from tkinter import *
root = Tk()
root.title("Entry Validation")
root.geometry("300x100")
def validation_function(text):
if len(text) <= 5:
try:
text = int(text)
return True
except:
return False
else:
return False
vcmd = root.register(validation_function)
entry = Entry(root, validate='key', validatecommand=(vcmd, "%P"))
entry.pack()
Es funktioniert normal. Aber wenn ich eine kleine Änderung in den Körper der Validierungsfunktion machen, funktioniert es nicht:
def validation_function(text):
try:
text = int(text)
if len(text) <= 5:
return True
else:
return False
except:
return False
Ich fühle mich ist das Problem hier:
except:
return False
Wahrscheinlich ist die maximale Länge Teil nicht gehen Sie gut mit Versuch-außer ... Jedoch:
def validation_function(text):
try:
if len(text) <= 5:
return True
else:
return False
except:
return False
funktioniert richtig. Aber es gibt nur die maximale Länge, ich will auch, dass es nur ganze Zahlen erlaubt. Ich habe es im ersten Beispiel gemacht, aber meine Frage ist: Warum funktioniert es nicht, wenn ich die Stellen des Maximallängenteils mit dem einzigen Ganzzahlenteil ändere?
Bitte nicht meine Fragen ohne zu erklären, downvote den Grund erhöhen wird! Es beschränkt meine Privilegien. Ich bin nur neu hier, Jungs, komm schon! –