Python Forum
What is the purpose of "None" in event=None with tkinter ?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
What is the purpose of "None" in event=None with tkinter ?
#1
In the following code, I try with and without the "=None" on line 30 (def changeCouleurs(self,event=None):), but there's no difference. I would like to understand in which case you use event=None.
Thanks for any help

class Application(object):
	def __init__ (self):
		"""Construteur de la fenêtre principale"""
		self.fen=Tk()
		self.fen.title('Code des couleurs')
		self.dessineResistance()
		self.dessineBouton()
		self.codeCouleur = ['black','brown','red','orange','yellow',\
							'green','blue','purple','grey','white']
	def dessineResistance(self):
		self.can=Canvas(self.fen,bg='ivory',width =500,height=300)
		self.can.grid(row = 1, column = 1, columnspan=3)
		self.can.create_line(10,150,490,150,width = 4)
		self.can.create_rectangle(100,100,400,200,fill='light grey')
		self.ligne=[]
		for i in range(3):
			self.ligne.append(self.can.create_rectangle(130+i*35,\
									100,145+i*35,200,fill='black'))

	def dessineBouton(self):
		Label(self.fen,text ='Entrez la valeur de la résitance, en ohms :').\
											grid(row=2,column=1,columnspan=3)
		#Button(self.fen,text='Montrer',command=self.changeCouleurs).grid(row=3,column=1)
		self.entree=Entry(self.fen,width=14)
		self.entree.grid(row=3,column=2)
		self.entree.bind("<Return>",self.changeCouleurs)
		Button(self.fen,text='Quitter',command=self.fen.quit).\
											grid(row=3,column=3)

	def changeCouleurs(self,event=None):
		"""Mettre event dans la fonction si elle est appelée avec un bind"""
		#test avec enent=None : marche pareil
		self.valEntree=self.entree.get()
		try:
			val=float(self.valEntree)
		except:
			erreur = 1
		else:
			erreur = 0
		if erreur == 1 or val >1e11 or val < 1:
			self.signalErreur()
		else :
			li =[0]*3 # liste des 3 codes à afficher
			if val >= 10:
				logv = int(log10(val)) # partie entière du logarithme
				ordgr = 10**logv # ordre de grandeur
				v_temp = round(val/ordgr*10)
				# extraction du premier chiffre significatif :
				li[0] = int(v_temp/10) # partie entière
				li[1] = v_temp- 10*li[0] # partie décimale
				li[2] = logv -1
			else:
				v_temp=round(val,1)
				li[0]=0
				li[1]=int(v_temp)
				li[2]=int(10*(v_temp-li[1]))
			for i in range(3):
				self.can.itemconfig(self.ligne[i],fill=self.codeCouleur[li[i]])

	def signalErreur(self):
		self.entree.config(bg='red')
		self.entree.after(1000,self.videEntree)

	def videEntree(self):
		self.entree.config(bg='white')
		self.entree.delete(0,len(self.valEntree))
		for i in range(3):
			self.can.itemconfig(self.ligne[i],fill='black')




from tkinter import *	
from math import log10	
appli = Application()
appli.fen.mainloop()
appli.fen.destroy()
Reply


Messages In This Thread
What is the purpose of "None" in event=None with tkinter ? - by alan9979 - Jul-06-2019, 12:29 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tkinter] Tkinter popup no grabbing the selected keys - Event propagation Wehaveall 2 1,529 Aug-10-2024, 01:18 PM
Last Post: Wehaveall
  [Tkinter] Mouse click event not working on multiple tkinter window evrydaywannabe 2 5,041 Dec-16-2019, 04:47 AM
Last Post: woooee
  Tkinter error for a scheduled event Ceegen 5 7,752 Jan-14-2019, 09:24 PM
Last Post: Ceegen

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020