finalisation add function/color boutoon

This commit is contained in:
vincent 2018-02-10 19:08:53 +01:00
parent 1591720d7d
commit 6ee8861871

45
cave.py
View File

@ -1,4 +1,5 @@
import pickle import pickle
from tkinter import * from tkinter import *
@ -6,7 +7,7 @@ class Etageres(object):
def __init__(self): def __init__(self):
self.etageres = [] self.etageres = []
self.nbetagere = 0 self.nbetagere = 0
self.couleur = ["rouge","blanc","rose"] self.couleur = {"rouge":"red","blanc":"white","rose":"pink"}
@classmethod @classmethod
def load_etageres(cls,file): def load_etageres(cls,file):
@ -22,6 +23,9 @@ class Etageres(object):
for etagere in self.etageres: for etagere in self.etageres:
etagere.generate_frame(self.fenetre) etagere.generate_frame(self.fenetre)
framecontrol=Frame(self.fenetre)
framecontrol.grid(column=2)
def mainloop(self): def mainloop(self):
self.fenetre.mainloop() self.fenetre.mainloop()
@ -114,14 +118,29 @@ class Etagere(object):
def click_add_bouteille(self,cassiervide): def click_add_bouteille(self,cassiervide):
couleur="test" child_window=Toplevel(self.etageres.fenetre)
millesime="0000" Label(child_window,text="select color").pack()
appelation="toto" couleur=StringVar()
newbouteille=Bouteille(cassiervide.pos_largeur, cassiervide.pos_hauteur, couleur, appelation, millesime, self) couleur.set("rouge")
self.bouteilles.append(newbouteille) OptionMenu(child_window,couleur,*self.etageres.couleur.keys()).pack()
del cassiervide
newbouteille.generate_boutton(self.frame) Label(child_window,text="enter millesime").pack()
self.frame["text"]=self millesime=StringVar()
Entry(child_window,textvariable=millesime).pack()
Label(child_window,text="enter appelation").pack()
appelation=StringVar()
Entry(child_window,textvariable=appelation).pack()
Button(child_window,text="OK",command=lambda:add(cassiervide,couleur.get(),millesime.get(),appelation.get())).pack()
def add(cassiervide,couleur,millesime,appelation):
child_window.destroy()
newbouteille=Bouteille(cassiervide.pos_largeur, cassiervide.pos_hauteur, couleur, appelation, millesime, self)
self.bouteilles.append(newbouteille)
del cassiervide
newbouteille.generate_boutton(self.frame)
self.frame["text"]=self
class Cassier_vide(object): class Cassier_vide(object):
@ -138,9 +157,6 @@ class Bouteille(object):
def __init__(self, pos_largeur, pos_hauteur, couleur, appelation, millesime, etagere): def __init__(self, pos_largeur, pos_hauteur, couleur, appelation, millesime, etagere):
self.pos_largeur = pos_largeur self.pos_largeur = pos_largeur
self.pos_hauteur = pos_hauteur self.pos_hauteur = pos_hauteur
if (couleur not in etagere.etageres.couleur):
etagere.etageres.couleur.append(couleur)
self.couleur = couleur self.couleur = couleur
@ -151,17 +167,18 @@ class Bouteille(object):
def generate_boutton(self,frame): def generate_boutton(self,frame):
self.boutton=Button(frame,text=self,command=lambda:self.etagere.click_remove_bouteille(self)) self.boutton=Button(frame,text=self,command=lambda:self.etagere.click_remove_bouteille(self))
self.boutton["bg"]=self.etagere.etageres.couleur[self.couleur]
self.boutton.grid(row=self.pos_hauteur,column=self.pos_largeur) self.boutton.grid(row=self.pos_hauteur,column=self.pos_largeur)
def __repr__(self): def __repr__(self):
return "appelation {}, millesime {} \n".format(self.appelation, self.millesime) return "couleur {} ,appelation {}, millesime {} \n".format( self.couleur,self.appelation, self.millesime)
new = Etageres() new = Etageres()
new.add_etagere(10, 3) new.add_etagere(10, 3)
new.add_etagere(4,4) new.add_etagere(4,4)
print(new.etageres[0].add_bouteille(1, 1, "rouge", "saint emilion", 2005)) print(new.etageres[0].add_bouteille(1, 1, "rouge", "saint emilion", 2005))
print(new.etageres[0].add_bouteille(9, 1, "pisse", "gewurtz", 2010)) print(new.etageres[0].add_bouteille(9, 1, "rose", "gewurtz", 2010))
print(new.etageres[0].add_bouteille(5, 2, "rouge", "saint emilion", 2006)) print(new.etageres[0].add_bouteille(5, 2, "rouge", "saint emilion", 2006))
print(new.etageres[0].bouteilles) print(new.etageres[0].bouteilles)