Bonjours, j'aimerait que mes entry ne prennent en compte que certains caractères, j'ai trouvé ça sur stackOverflow (vite fait édité par moi-même, pour comprendre je décortique petit à petit)
mais là ... je n'y comprend rien...
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
20
21
22
23
24
 
 
from tkinter import *
 
class window2:
	def __init__(self):
 
 
		self.text1 = Entry(root, validate = 'key', validatecommand = (root.register(self.validate),'%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W'))
		self.text1.grid()
 
	def validate(self, action, index, value_if_allowed, prior_value, text, validation_type, trigger_type, widget_name):
		if text in '0123456789.-+':
			try:
				float(value_if_allowed)
				return True
			except ValueError:
				return False
		else:
			return False
 
root = Tk()
a = window2()
root.mainloop()
Je n'ai trouvé aucune doc, root.register(self.validate) et self, action, index, value_if_allowed, prior_value, text, validation_type, trigger_type, widget_name doit être la clé de la compréhension.
Si je comprend bien la fonction renvoie True ou False donc root.register(True) ou root.register(False) c'est ça ?

edit : si je comprend bien les quelques docs validatecommand = (root.register(self.validate) revient juste à validatecommand = True ou validatecommand = False c'est bien ça ?