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
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() -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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 question -
def 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.
-