integration UI dans classe built in/add methode création deletre en UI
This commit is contained in:
parent
cd97900b30
commit
1591720d7d
86
cave.py
86
cave.py
@ -1,5 +1,6 @@
|
||||
|
||||
import pickle
|
||||
from tkinter import *
|
||||
|
||||
class Etageres(object):
|
||||
def __init__(self):
|
||||
@ -16,7 +17,14 @@ class Etageres(object):
|
||||
self.nbetagere += 1
|
||||
self.etageres.append(Etagere(largeur, hauteur, self))
|
||||
|
||||
|
||||
def generate_windows(self):
|
||||
self.fenetre=Tk()
|
||||
for etagere in self.etageres:
|
||||
etagere.generate_frame(self.fenetre)
|
||||
|
||||
def mainloop(self):
|
||||
self.fenetre.mainloop()
|
||||
|
||||
def nbbouteille(self):
|
||||
i = 0
|
||||
for etagere in self.etageres:
|
||||
@ -70,10 +78,10 @@ class Etagere(object):
|
||||
for bouteille in self.bouteilles:
|
||||
if (pos_largeur == bouteille.pos_largeur and pos_hauteur == bouteille.pos_hauteur):
|
||||
self.bouteilles.remove(bouteille)
|
||||
return "bouteille suprimé"
|
||||
return ( "bouteille suprimé")
|
||||
else:
|
||||
i += 1
|
||||
return "aucune bouteille troucé a cette emplacement"
|
||||
return ( "aucune bouteille troué a cette emplacement")
|
||||
|
||||
def __repr__(self):
|
||||
return "etagére numéros {} de largeur {} et de hauteur {} et contient {} bouteille(s) ".format(self.num_etagere, self.largeur, self.hauteur, len(self.bouteilles))
|
||||
@ -81,6 +89,49 @@ class Etagere(object):
|
||||
def __iter__(self):
|
||||
return iter(self.bouteilles)
|
||||
|
||||
def generate_frame(self,root):
|
||||
|
||||
self.frame=LabelFrame(root,text=self)
|
||||
for hauteur in range(self.hauteur):
|
||||
for largeur in range(self.largeur):
|
||||
isset = False
|
||||
for bouteille in self:
|
||||
if (largeur == bouteille.pos_largeur and hauteur == bouteille.pos_hauteur):
|
||||
bouteille.generate_boutton(self.frame)
|
||||
isset = True
|
||||
break
|
||||
if isset == False:
|
||||
Cassier_vide(largeur,hauteur,self)
|
||||
self.frame.grid(row=self.num_etagere)
|
||||
|
||||
|
||||
def click_remove_bouteille(self,bouteille):
|
||||
self.remove_bouteille(bouteille.pos_largeur, bouteille.pos_hauteur)
|
||||
bouteille.boutton.destroy()
|
||||
Cassier_vide(bouteille.pos_largeur,bouteille.pos_hauteur,self)
|
||||
self.frame["text"]=self
|
||||
|
||||
|
||||
def click_add_bouteille(self,cassiervide):
|
||||
|
||||
couleur="test"
|
||||
millesime="0000"
|
||||
appelation="toto"
|
||||
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):
|
||||
|
||||
def __init__(self, pos_largeur, pos_hauteur,etagere):
|
||||
self.pos_largeur = pos_largeur
|
||||
self.pos_hauteur = pos_hauteur
|
||||
self.etagere = etagere
|
||||
self.boutton=Button(etagere.frame,text="cassier vide",command=lambda:self.etagere.click_add_bouteille(self))
|
||||
self.boutton.grid(row=self.pos_hauteur,column=self.pos_largeur)
|
||||
|
||||
|
||||
class Bouteille(object):
|
||||
|
||||
@ -97,20 +148,29 @@ class Bouteille(object):
|
||||
self.appelation = appelation
|
||||
self.etagere = etagere
|
||||
|
||||
def __repr__(self):
|
||||
return "bouteille: pos_largeur {} , pos_hauteur {}, couleur {} , appelation {}, millesime {} \n".format(self.pos_largeur, self.pos_hauteur, self.couleur, self.appelation, self.millesime)
|
||||
def generate_boutton(self,frame):
|
||||
|
||||
self.boutton=Button(frame,text=self,command=lambda:self.etagere.click_remove_bouteille(self))
|
||||
self.boutton.grid(row=self.pos_hauteur,column=self.pos_largeur)
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return "appelation {}, millesime {} \n".format(self.appelation, self.millesime)
|
||||
|
||||
new = Etageres()
|
||||
new.add_etagere(30, 3)
|
||||
print(new.etageres[0].add_bouteille(28, 2, "rouge", "saint emilion", 2005))
|
||||
print(new.etageres[0].add_bouteille(24, 1, "pisse", "gewurtz", 2010))
|
||||
print(new.etageres[0].add_bouteille(23, 2, "rouge", "saint emilion", 2006))
|
||||
new.add_etagere(10, 3)
|
||||
new.add_etagere(4,4)
|
||||
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(5, 2, "rouge", "saint emilion", 2006))
|
||||
|
||||
print(new.etageres[0].bouteilles)
|
||||
|
||||
print("vos etagére contiennes {} bouteille".format(new.nbbouteille()))
|
||||
print("vos etagére contiennes {} bouteille de rouge".format(
|
||||
new.nbbouteillecouleur("rouge")))
|
||||
new.save_etageres("test.pkl")
|
||||
new.nbbouteillecouleur("rouge")))
|
||||
|
||||
print(new.couleur)
|
||||
print(new.remove_etagere(new.etageres[0]))
|
||||
del new
|
||||
|
||||
new.generate_windows()
|
||||
new.mainloop()
|
||||
|
Loading…
Reference in New Issue
Block a user