finalisation load save ad etagere UI
This commit is contained in:
parent
fee70224b3
commit
9d4c823729
94
cave.py
94
cave.py
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
import pickle
|
import json
|
||||||
from tkinter import *
|
from tkinter import *
|
||||||
|
|
||||||
class Etageres(object):
|
class Etageres(object):
|
||||||
@ -11,21 +11,60 @@ class Etageres(object):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def load_etageres(cls,file):
|
def load_etageres(cls,file):
|
||||||
with open(file, 'rb') as data:
|
try:
|
||||||
return pickle.load(data)
|
with open(file, 'rb') as json_data:
|
||||||
|
data=json.load(json_data)
|
||||||
|
except FileNotFoundError:
|
||||||
|
print ("no file to load")
|
||||||
|
return Etageres()
|
||||||
|
loadobj=Etageres()
|
||||||
|
for etagere in data["etageres"]:
|
||||||
|
print("etagere:")
|
||||||
|
print (etagere)
|
||||||
|
loadobj.add_etagere(etagere["largeur"],etagere["hauteur"])
|
||||||
|
for bouteille in etagere["bouteilles"]:
|
||||||
|
loadobj.etageres[loadobj.nbetagere-1].add_bouteille(bouteille["pos_largeur"],bouteille["pos_hauteur"],bouteille["couleur"],bouteille["millesime"],bouteille["appelation"])
|
||||||
|
return loadobj
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def add_etagere(self, largeur, hauteur):
|
def add_etagere(self, largeur, hauteur):
|
||||||
self.nbetagere += 1
|
self.nbetagere += 1
|
||||||
self.etageres.append(Etagere(largeur, hauteur, self))
|
self.etageres.append(Etagere (largeur, hauteur, self))
|
||||||
|
|
||||||
|
def click_add_etagere(self):
|
||||||
|
|
||||||
|
child_window=Toplevel(self.fenetre)
|
||||||
|
Label(child_window,text="select largeur").pack()
|
||||||
|
largeur=StringVar()
|
||||||
|
Entry(child_window,textvariable=largeur).pack()
|
||||||
|
|
||||||
|
Label(child_window,text="hauteur").pack()
|
||||||
|
hauteur=StringVar()
|
||||||
|
Entry(child_window,textvariable=hauteur).pack()
|
||||||
|
|
||||||
|
Button(child_window,text="OK",command=lambda:add(largeur.get(),hauteur.get())).pack()
|
||||||
|
|
||||||
|
def add(largeur,hauteur):
|
||||||
|
child_window.destroy()
|
||||||
|
self.nbetagere += 1
|
||||||
|
newetagere=Etagere(int(largeur),int(hauteur),self)
|
||||||
|
|
||||||
|
self.etageres.append(newetagere)
|
||||||
|
newetagere.generate_frame(self.fenetre)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def generate_windows(self):
|
def generate_windows(self):
|
||||||
self.fenetre=Tk()
|
self.fenetre=Tk()
|
||||||
|
self.fenetre.title(string="cave a vin")
|
||||||
for etagere in self.etageres:
|
for etagere in self.etageres:
|
||||||
etagere.generate_frame(self.fenetre)
|
etagere.generate_frame(self.fenetre)
|
||||||
|
|
||||||
framecontrol=LabelFrame(self.fenetre,text="command pannel")
|
framecontrol=LabelFrame(self.fenetre,text="command pannel")
|
||||||
framecontrol.grid(column=2,row=1)
|
framecontrol.grid(column=2,row=1)
|
||||||
Button(framecontrol,text="add etagere").pack()
|
Button(framecontrol,text="add etagere",command=lambda:self.click_add_etagere()).pack()
|
||||||
Button(framecontrol,text="remove etagere").pack()
|
Button(framecontrol,text="remove etagere").pack()
|
||||||
Button(framecontrol,text="save",command=lambda:self.save_etageres("cave")).pack()
|
Button(framecontrol,text="save",command=lambda:self.save_etageres("cave")).pack()
|
||||||
|
|
||||||
@ -55,9 +94,12 @@ class Etageres(object):
|
|||||||
|
|
||||||
return "etagere {} suprimer".format(etagere.num_etagere)
|
return "etagere {} suprimer".format(etagere.num_etagere)
|
||||||
def save_etageres(self,file):
|
def save_etageres(self,file):
|
||||||
with open(file, 'wb') as output:
|
with open(file, 'w') as output:
|
||||||
|
data={"etageres":[]}
|
||||||
pickle.dump(saveobject,output)
|
for etagere in self.etageres:
|
||||||
|
data["etageres"].append(etagere.save())
|
||||||
|
print(data)
|
||||||
|
json.dump(data,output,indent=4)
|
||||||
print ("save ok")
|
print ("save ok")
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
@ -143,7 +185,11 @@ class Etagere(object):
|
|||||||
self.frame["text"]=self
|
self.frame["text"]=self
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
pass
|
data={"largeur": self.largeur,"hauteur": self.hauteur,"bouteilles":[]}
|
||||||
|
for bouteille in self.bouteilles:
|
||||||
|
data["bouteilles"].append(bouteille.save())
|
||||||
|
return data
|
||||||
|
|
||||||
def __repr__(self):
|
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))
|
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))
|
||||||
|
|
||||||
@ -182,23 +228,25 @@ class Bouteille(object):
|
|||||||
def save(self):
|
def save(self):
|
||||||
data={ "pos_largeur" : self.pos_largeur,"pos_hauteur" : self.pos_hauteur, "couleur" : self.couleur, "millesime" : self.millesime,"appelation" : self.appelation}
|
data={ "pos_largeur" : self.pos_largeur,"pos_hauteur" : self.pos_hauteur, "couleur" : self.couleur, "millesime" : self.millesime,"appelation" : self.appelation}
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "{},{} \n".format(self.appelation, self.millesime)
|
return "{},{} \n".format(self.appelation, self.millesime)
|
||||||
|
|
||||||
new = Etageres()
|
new = Etageres.load_etageres("cave")
|
||||||
new.add_etagere(10, 3)
|
#new =Etageres()
|
||||||
new.add_etagere(4,4)
|
#new.add_etagere(10, 3)
|
||||||
print(new.etageres[0].add_bouteille(1, 1, "rouge", "saint emilion", 2005))
|
#new.add_etagere(4,4)
|
||||||
print(new.etageres[0].add_bouteille(9, 1, "rose", "gewurtz", 2010))
|
#print(new.etageres[0].add_bouteille(1, 1, "rouge", "saint emilion", 2005))
|
||||||
print(new.etageres[0].add_bouteille(5, 2, "rouge", "saint emilion", 2006))
|
#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].bouteilles)
|
#
|
||||||
|
#print(new.etageres[0].bouteilles)
|
||||||
print("vos etagére contiennes {} bouteille".format(new.nbbouteille()))
|
#
|
||||||
print("vos etagére contiennes {} bouteille de rouge".format(
|
#print("vos etagére contiennes {} bouteille".format(new.nbbouteille()))
|
||||||
new.nbbouteillecouleur("rouge")))
|
#print("vos etagére contiennes {} bouteille de rouge".format(
|
||||||
|
#new.nbbouteillecouleur("rouge")))
|
||||||
print(new.couleur)
|
#
|
||||||
|
#print(new.couleur)
|
||||||
|
|
||||||
new.generate_windows()
|
new.generate_windows()
|
||||||
new.mainloop()
|
new.mainloop()
|
||||||
|
Loading…
Reference in New Issue
Block a user