Aşağıda tkinter, entry validate üçlüsünde isdigit ile sadece sayı girilecek alanda tarihte hün,ay,yıl sayı uzunluğu, sayı aralığını kontrol etmek istiyorum ama bağımsız olarak def sayi_kont ile yaptığım denemede sorun yok ama onu entry ve validate de nereye oturtacağımı bilemedim. Bu konuda yardımlarınızı bekliyorum.
def validate(sayi): # callback function
return sayi.isdigit()
gecerli = tk.register(validate)
#================================
ltarih= Label(tk, text="Sınav Tarihi \n (gg/aa/yyyy) ",width=10,height=2,bg=“blue”,fg=“white”,font=“arial 10 bold”)
tarihgun= Entry(tk,validate=‘key’, width=2,bg=“Black”,fg=“white”,font=“Arial 12 bold”, validatecommand=(gecerli,’%S’))
tarihay= Entry(tk,validate=‘key’ ,width=2,bg=“Black”,fg=“white”,font=“Arial 12 bold”,validatecommand=(gecerli,’%S’))
tarihyil= Entry(tk,validate=‘key’, width=4,bg=“Black”,fg=“white”,font=“Arial 12 bold”,validatecommand=(gecerli,’%S’))
ltarih.place(relx=0.01, rely=0.12)
tarihgun.place(relx=0.40, rely=0.12)
tarihay.place(relx=0.50, rely=0.12)
tarihyil.place(relx=0.60, rely=0.12)
#yukarıda sadece sayısal değer girişini kontrol ederken, aynı zamanda günün 1 ile 31, ayın 1 ile 12 yılında +_4 yılı kontrol edeyim istedim entry ve validate yapısı içinde nasıl yapacağımı bulamadım. denedim ama yeni pyrhon tkinterde yeni olduğum için olmadı. konuta hakim arkadaşlarda yardıöcı olan olursa sevinirim. saygıyla
def sayi_kont():
global sayi
sayi=input(“Sayi giriniz”)
if sayi.isdigit():
if int(sayi)>0 and int(sayi)<32 and len(str(sayi))<3:
print("1 ile 31—> ", sayi)
else:
print(“Tekrar 1ile 31 arası ve 2 haneli===>”,sayi)
tekrar()
else:
try:
print(“Sadece Sayı ===>”,sayi)
tekrar()
except ValueError:
tekrar()
def tekrar():
sayi_kont()
sayi_kont()
print("Sayı Onaylandı ",sayi)