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 definedHabe 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
