C'est possible de bloquer caractères dans barre d'entree ?
Bonjour, j'ai besoin d'aide :
J'ai créé un programme tkinter qui permet de convertir des nombres décimaux en binaires et en hexadécimaux, et je voudrais savoir si il est possible d'empecher certains caractères d'être entrés dans le champ de saisie (par exemple: ? ; ! ) car sinon le programme bug (c'est logique). Ou sinon de ne laisser passer que les chiffres.
Merci
- C'est possible de bloquer caractères dans barre d'entree ?
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Bloquer pub youtube - Accueil - Streaming
- Windows 11 barre des taches a gauche - Guide
- Barre de défilement - Guide
5 réponses
Salut,
En utilisant validate dans les paramètres de l'Entry(), tu ne pourras saisir que des chiffres.
from tkinter import * def only_numbers(char): return char.isdigit() root = Tk() validation = root.register(only_numbers) ent = Entry(root,validate="key", validatecommand=(validation, '%S')) ent.pack() root.mainloop()
bonjour,
le plus simple, c'est d'éviter que le programme ne se termine en erreur.
Tu pourrais regarder du côté de try / except
Une petite boucle tant que c'est pas bon, je recommence ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questiondef convert_decimalBinaire(): n = int(entree1_1.get()) b = 0 ord = 0 while n != 0 : reste = n % 2 p = 10 ** ord b = b + reste * p ord = ord + 1 n = n // 2 sortie1_1.delete(0 , END) sortie1_1.insert( 0 , b)
Voici une partie de mon programme.
Merci mamiemando, mais comment je l'intègre à mon programme ?
C'est surtout Diablo76 qu'il faut remercier :-)
Outre le fait que certaines variables ne sont pas définies dans le code que tu viens de partager, je ne vois pas trop le rapport avec la question initiale. Je pense que ta nouvelle question est "comment mettre à jour un label après avoir un cliqué sur un bouton dans tkinter" et dans ce cas je te renvoie à cet exemple :
import tkinter as tk win = tk.Tk() def changetext(): a.config(text="changed text!") a = tk.Label(win, text="hello world") a.pack() tk.Button(win, text="Change Label Text", command=changetext).pack() win.mainloop()
Si ça ne répond pas à ta question et qu'elle n'a pas de rapport avec la question initiale, je t'invite à la reformuler dans une nouvelle discussion.
La solution de Diablo76 est la bonne, il faut juste adapter la fonction only_numbers en fonction des caractère autorisés.
Plus de détails ici.
Bonne chance