C'est possible de bloquer caractères dans barre d'entree ?
Fermémamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 - 25 nov. 2022 à 02:31
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()
23 nov. 2022 à 23:15
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 ...
24 nov. 2022 à 09:44
Si tu nous montres ton code, nous pourrons te donner des conseils plus précis.
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 ?
25 nov. 2022 à 02:31
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.
24 nov. 2022 à 16:54
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