1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| # exo 13.22 : élaboration d'un dictionnaire de couleurs, qui sera une applica-
# tion graphique, avec un certain nombre de champs d'entrée et de boutons.
#
#
from tkinter import *
class Dictio_Couleurs(Frame) :
"""Afin d'instancier un dictionnaire contenant les codes hexadécimaux de
quelques couleurs, et le mot français correspondant"""
def __init__(self) :
Frame.__init__(self)
self.dicou = {}
Button(self,text='Ajouter',width=15,command=self.ajouter).grid(row=0,column=1)
Button(self,text='Interroger',width=15,command=self.afficher).grid(row=1,column=1)
Button(self,text='Enregistrement',width=15,command=self.enregistrer).grid(row=2,column=1)
Button(self,text='Chargement',width=15,command=self.reconstruire).grid(row=3,column=1)
Button(self,text='Quitter',width=15,command=self.quit).grid(row=4,column=1)
self.case_nom = Entry(self,width=25)
self.case_nom.grid(row=1,column=0)
self.case_nom.bind('<Return>',self.afficher)
Label(self,text='Nom de la couleur :').grid(row=0,column=0)
self.var_aff = ''
self.case_code = Entry(self,width=25,textvariable=self.var_aff)
self.case_code.grid(row=3,column=0)
Label(self,text='Code hexadécimal de la couleur :').grid(row=2,column=0)
self.pack()
def ajouter(self) :
if self.case_nom != '' and self.case_code != '' :
self.dicou[self.case_nom.get()] = self.case_code.get()
def afficher(self) :
if self.case_nom != '' and self.case_nom.get() in self.dicou :
self.var_aff(eval(str(self.dicou[self.case_nom.get()])))
print(self.dicou[self.case_nom.get()])
def enregistrer(self) :
fichier = open('French couleurs','w')
for nom,couleur in self.dicou.items() :
fichier.write("{}&{}\n".format(nom,couleur))
fichier.close()
def reconstruire(self) :
fichier = open('French couleurs','r')
while 1 :
ch = fichier.readline()
if ch == '' :
break
else :
nom = ch[:ch.index('&')]
code = ch[ch.index('&')+1:ch.index('\n')]
self.dicou[nom] = code
fichier.close()
if __name__ == "__main__" :
g = Dictio_Couleurs()
g.mainloop()
g.destroy() |