Bonjour
Je débute avec Python,
je voulais savoir comment définir une masque de dans un champ
Pour un champ date : XX/XX/XXX ; Numérique : 9,999.999 etc
Merci d'avance
Bonjour
Je débute avec Python,
je voulais savoir comment définir une masque de dans un champ
Pour un champ date : XX/XX/XXX ; Numérique : 9,999.999 etc
Merci d'avance
Salut,
Vous voulez faire ça avec input ou bien une interface graphique (à préciser)?
- W
Salut !
Aucune idée de l'existence ou non de masque de saisie côté Tkinter, pour ma part j'aurai codé ça en dur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import tkinter as tk import time def fct(*args): if len(Date.get()) == 2: entree.insert(tk.END, '/') elif len(Date.get()) == 5: entree.insert(tk.END, '/') elif len(Date.get()) > 10: entree.delete(entree.index("end") - 1) root = tk.Tk() label = tk.Label(root, text = "Date :") label.grid(row=0, column=0) Date = tk.StringVar() entree = tk.Entry(root, textvariable = Date) entree.grid(row=0, column=1) Date.trace("w", fct) root.mainloop()
Il suffit de les fabriquer: JJ/MM/YYYY peut être représenté par 3 Entry (pour les valeurs des JJ, MM, YYYY que l'utilisateur doit saisir) séparées par 2 Label contenant '/'. Ces widgets étant placés via .grid dans une Frame et on a fabriqué le début d'un widget "masque" (à compléter avec de la validation des saisies dans les différentes Entry(s)).
On peut aussi proposer à l'utilisateur des combobox où on lui propose des valeurs à choisir. Elles seront "licites": plus besoin de "valider". Il faudra juste s'assurer que la date existe (peut être en réduisant la variabilité des choix dans les autres combobox...).
Mais ne pas proposer quelque chose qui ressemble à un "masque"? C'est bien de l'indiquer mais ce n'était pas le sujet.
- W
C'est bien tenté (et on y croit presque). Le souci c'est que ça ne gère pas très bien le retour en arrière. On retourne en arrière sur l'année et le curseur se bloque sur le dernier "/". Ok on change la position avec la souris on peut ensuite revenir en arrière sur mm et jj mais les "/" restent présents regroupés en début de champ.
Pas si évident que ça de coder un masque de saisie...
Ben il me semble que ce qu'il a fait s'en rapproche pas trop mal...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Partager