Code: Alles auswählen
"""
erstes test project
erst benötigte Module laden
"""
import tkinter as tk # für die GUI
from tkinter import ttk # bessere widgets für die GUI
root = tk.Tk()
root.title('User im System')
root.geometry("800x400+50+50")
root.minsize(width=850, height=400)
root.maxsize(width=1000, height=600)
""" check if age in range """
def check_age():
try:
value = int(ent_age.get())
if value < 10 or value > 99:
lbl_age_info.configure(text=f"Alter {value} ungültig")
else:
lbl_age_info.configure(text="OK")
return True
except:
ValueError: lbl_age_info.configure(text="Nur Zahlen")
lbl_age_info.configure(text="Nur Ziffern")
ent_age.focus_set()
# ent_age.delete(0, END)
return False
arial_20 =("Arial",18)
""" create Widgets """
""" Age """
lbl_age = ttk.Label(root, text="Alter: ", width=10, font=arial_20,padding=5)
lbl_age.grid(row=0, column=0, padx='5', pady='5')
ent_age = ttk.Entry(root,width=2,font=arial_20, validatecommand=check_age, validate="focusout")
ent_age.grid(row=0, column=1, padx='5', pady='5',sticky="w")
lbl_age_info = ttk.Label(root, text="zwischen 10 und 99", width=20, font=arial_20, padding=5)
lbl_age_info.grid(row=0, column=3, padx='5', pady='5')
"""" Gender """
lbl_gender = ttk.Label(root, text="Geschlecht: (m/w/d)", font=arial_20, padding=5)
lbl_gender.grid(row=1, column=0, padx='5', pady='5')
#Adding combobox drop down list
cbx_gender = ttk.Combobox(root,values=["m","w","d"],width=1,font=arial_20)
cbx_gender.configure(font=arial_20)
cbx_gender.grid(row=1, column=1, padx='5', pady='5', sticky='w')
root.mainloop()
....
lbl_age_info.configure(text="Nur Ziffern")
ent_age.focus_set()
# ent_age.delete(0, END)
return False
....
Nur wenn ich die drinn lasse,, bekomme ich Laufzeitfehler und auch PyCharm mekert
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/local/Cellar/python@3.9/3.9.19_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/Users/mk/Pycharm/class_test/test.py", line 27, in check_age
ent_age.delete(0, END)
NameError: name 'END' is not defined
Habe schon anderes versucht und Stunden im Internet recherchiert
Wie bekomme ich das hin, dass im Fehlerfall das feld wieder leer ist
Dank und Gruß
Rainer