¿Te parece una alternativa razonable para completar el ej. que saque de tu blog?,
lo que no logro es hacer que se seleccione el total de la fecha es evidente que el
ultimo digito ingresado lo imprime después de la validación, hice varias practicas
pero no funciona.-.-
Slds. Daniel ☕☕☕
lo que no logro es hacer que se seleccione el total de la fecha es evidente que el
ultimo digito ingresado lo imprime después de la validación, hice varias practicas
pero no funciona.-.-
Código:
def validarFecha(fecha):
try:
datetime.strptime(fecha, '%d/%m/%Y')
return 1
except ValueError:
return 0
def validate_entry(new_text):
if len(new_text) > 10:
return False
checks = []
for i, char in enumerate(new_text):
if i in (2, 5):
checks.append(char == "/")
else:
checks.append(char.isdecimal())
if len(new_text) == 10:
resultado = validarFecha(new_text)
if resultado == 0:
entrada.select_range(0, 10)
entrada.focus()
return all(checks)
root = tk.Tk()
root.geometry("300x200+700+300")
root.title("Mi aplicación.")
entrada = ttk.Entry(validate="key", validatecommand=(root.register(validate_entry), "%P"))
entrada.place(x=10, y=10, width=100)
entrada.focus()
root.mainloop()Slds. Daniel ☕☕☕
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-


. A lo que me refería en particular es que si una fecha inválida (p. ej. 11/11/0000) es pegada desde el cortapapeles usando un menú contextual (click derecho en la caja de texto -> Pegar), la función entrada_modificada() no se ejecuta porque no hay ninguna tecla presionada, entonces el contenido no se selecciona. Pero por defecto las cajas de texto de Tk no tienen menú para copiar/pegar (aunque sí funcionan los atajos del teclado), sino que hay que implementarlo manualmente: