tri supression poroblémé
This commit is contained in:
parent
357df063b7
commit
9ffee40a54
272
cave.py
272
cave.py
@ -1,41 +1,42 @@
|
|||||||
|
import json
|
||||||
import json
|
from tkinter import Scrollbar,Label,LabelFrame,Entry,Button,OptionMenu,StringVar,Canvas,Toplevel,N,S,VERTICAL,Tk
|
||||||
from tkinter import *
|
|
||||||
|
|
||||||
class Etageres(object):
|
class Etageres(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.etageres = []
|
self.etageres = []
|
||||||
self.nbetagere = 0
|
self.nbetagere = 0
|
||||||
self.couleur = {"rouge":"red","blanc":"white","rose":"pink","champagne":"yellow"}
|
self.couleur = {"rouge": "red", "blanc": "white",
|
||||||
|
"rose": "pink", "champagne": "yellow"}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def load_etageres(cls,file):
|
def load_etageres(cls, file):
|
||||||
try:
|
try:
|
||||||
with open(file, 'rb') as json_data:
|
with open(file, 'rb') as json_data:
|
||||||
data=json.load(json_data)
|
data = json.load(json_data)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
print ("no file to load")
|
print("no file to load")
|
||||||
return Etageres()
|
return Etageres()
|
||||||
loadobj=Etageres()
|
loadobj = Etageres()
|
||||||
for etagere in data["etageres"]:
|
for etagere in data["etageres"]:
|
||||||
print("etagere:")
|
print("etagere:")
|
||||||
print (etagere)
|
print(etagere)
|
||||||
loadobj.add_etagere(etagere["largeur"],etagere["hauteur"])
|
loadobj.add_etagere(etagere["largeur"], etagere["hauteur"])
|
||||||
for bouteille in etagere["bouteilles"]:
|
for bouteille in etagere["bouteilles"]:
|
||||||
loadobj.etageres[loadobj.nbetagere-1].add_bouteille(bouteille["pos_largeur"],bouteille["pos_hauteur"],bouteille["couleur"],bouteille["millesime"],bouteille["appelation"])
|
loadobj.etageres[loadobj.nbetagere-1].add_bouteille(
|
||||||
return loadobj
|
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
|
||||||
|
newetagere = Etagere(largeur, hauteur, self)
|
||||||
newetagere = Etagere(largeur,hauteur,self)
|
|
||||||
self.etageres.append(newetagere)
|
self.etageres.append(newetagere)
|
||||||
return newetagere
|
return newetagere
|
||||||
|
|
||||||
def nbbouteille(self):
|
def nbbouteille(self):
|
||||||
i = 0
|
i = 0
|
||||||
for etagere in self.etageres:
|
for etagere in self.etageres:
|
||||||
for bouteille in etagere:
|
i += len(etagere.bouteilles)
|
||||||
i += 1
|
|
||||||
|
|
||||||
return i
|
return i
|
||||||
|
|
||||||
@ -47,23 +48,22 @@ class Etageres(object):
|
|||||||
i += 1
|
i += 1
|
||||||
return i
|
return i
|
||||||
|
|
||||||
def remove_etagere(self,num_etagere):
|
def remove_etagere(self, num_etagere):
|
||||||
for etagere in self.etageres:
|
for etagere in self.etageres:
|
||||||
if etagere.num_etagere==num_etagere:
|
if etagere.num_etagere == num_etagere:
|
||||||
self.etageres.remove(etagere)
|
self.etageres.remove(etagere)
|
||||||
self.nbetagere -= 1
|
self.nbetagere -= 1
|
||||||
return 0
|
return 0
|
||||||
return "pas d'étagere a ce numéros"
|
return "pas d'étagere a ce numéros"
|
||||||
|
|
||||||
return "etagere {} suprimer".format(etagere.num_etagere)
|
def save_etageres(self, file):
|
||||||
def save_etageres(self,file):
|
|
||||||
with open(file, 'w') as output:
|
with open(file, 'w') as output:
|
||||||
data={"etageres":[]}
|
data = {"etageres": []}
|
||||||
for etagere in self.etageres:
|
for etagere in self.etageres:
|
||||||
data["etageres"].append(etagere.save())
|
data["etageres"].append(etagere.save())
|
||||||
print(data)
|
print(data)
|
||||||
json.dump(data,output,indent=4)
|
json.dump(data, output, indent=4)
|
||||||
print ("save ok")
|
print("save ok")
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
return iter(self.etageres)
|
return iter(self.etageres)
|
||||||
@ -76,7 +76,6 @@ class Etagere(object):
|
|||||||
self.hauteur = hauteur
|
self.hauteur = hauteur
|
||||||
self.etageres = etageres
|
self.etageres = etageres
|
||||||
self.bouteilles = []
|
self.bouteilles = []
|
||||||
|
|
||||||
|
|
||||||
def add_bouteille(self, pos_largeur, pos_hauteur, couleur, appelation, millesime):
|
def add_bouteille(self, pos_largeur, pos_hauteur, couleur, appelation, millesime):
|
||||||
if (pos_hauteur > self.hauteur or pos_largeur > self.largeur or pos_hauteur < 0 or pos_largeur < 0):
|
if (pos_hauteur > self.hauteur or pos_largeur > self.largeur or pos_hauteur < 0 or pos_largeur < 0):
|
||||||
@ -84,25 +83,24 @@ class Etagere(object):
|
|||||||
for bouteille in self.bouteilles:
|
for bouteille in self.bouteilles:
|
||||||
if (pos_largeur == bouteille.pos_largeur and pos_hauteur == bouteille.pos_hauteur):
|
if (pos_largeur == bouteille.pos_largeur and pos_hauteur == bouteille.pos_hauteur):
|
||||||
return "une bouteille existe déja a cette emplacement"
|
return "une bouteille existe déja a cette emplacement"
|
||||||
newbouteille=Bouteille(pos_largeur, pos_hauteur, couleur, appelation, millesime, self)
|
newbouteille = Bouteille(
|
||||||
|
pos_largeur, pos_hauteur, couleur, appelation, millesime, self)
|
||||||
self.bouteilles.append(newbouteille)
|
self.bouteilles.append(newbouteille)
|
||||||
return newbouteille
|
return newbouteille
|
||||||
|
|
||||||
def remove_bouteille(self, pos_largeur, pos_hauteur):
|
def remove_bouteille(self, pos_largeur, pos_hauteur):
|
||||||
i = 0
|
i = 0
|
||||||
for bouteille in self.bouteilles:
|
for bouteille in self.bouteilles:
|
||||||
if (pos_largeur == bouteille.pos_largeur and pos_hauteur == bouteille.pos_hauteur):
|
if (pos_largeur == bouteille.pos_largeur and pos_hauteur == bouteille.pos_hauteur):
|
||||||
self.bouteilles.remove(bouteille)
|
self.bouteilles.remove(bouteille)
|
||||||
return ( "bouteille suprimé")
|
return "bouteille suprimé"
|
||||||
else:
|
else:
|
||||||
i += 1
|
i += 1
|
||||||
return ( "aucune bouteille troué a cette emplacement")
|
return "aucune bouteille troué a cette emplacement"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
data={"largeur": self.largeur,"hauteur": self.hauteur,"bouteilles":[]}
|
data = {"largeur": self.largeur,
|
||||||
|
"hauteur": self.hauteur, "bouteilles": []}
|
||||||
for bouteille in self.bouteilles:
|
for bouteille in self.bouteilles:
|
||||||
data["bouteilles"].append(bouteille.save())
|
data["bouteilles"].append(bouteille.save())
|
||||||
return data
|
return data
|
||||||
@ -113,12 +111,13 @@ class Etagere(object):
|
|||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
return iter(self.bouteilles)
|
return iter(self.bouteilles)
|
||||||
|
|
||||||
|
|
||||||
class Bouteille(object):
|
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
|
||||||
|
|
||||||
self.couleur = couleur
|
self.couleur = couleur
|
||||||
|
|
||||||
self.millesime = millesime
|
self.millesime = millesime
|
||||||
@ -126,150 +125,163 @@ class Bouteille(object):
|
|||||||
self.etagere = etagere
|
self.etagere = etagere
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
|
|
||||||
class EtageresUI(object):
|
class EtageresUI(Tk):
|
||||||
def __init__(self,etageres):
|
def __init__(self, etageres):
|
||||||
self.etageres=etageres
|
Tk.__init__(self)
|
||||||
self.fenetre=Tk()
|
self.etageres = etageres
|
||||||
self.fenetre.title(string="cave a vin")
|
self.title(string="cave a vin")
|
||||||
self.etageresUI=[]
|
self.etageresUI = []
|
||||||
scrollbar = Scrollbar(self.fenetre,orient=VERTICAL)
|
|
||||||
scrollbar.grid(column=2,row=1,sticky=N+S)
|
|
||||||
self.etagere_frame=Canvas(self.fenetre,yscrollcommand=scrollbar.set)
|
|
||||||
scrollbar.config(command=self.etagere_frame.yview)
|
|
||||||
for etagere in self.etageres:
|
|
||||||
self.etageresUI.append(EtagereUI(etagere,self))
|
|
||||||
|
|
||||||
framecontrol=LabelFrame(self.etagere_frame,text="command pannel")
|
|
||||||
framecontrol.grid(column=2,row=1)
|
|
||||||
Button(framecontrol,text="add etagere",command=self.click_add_etagere).pack()
|
|
||||||
Button(framecontrol,text="remove etagere",command=self.click_remove_etagere).pack()
|
|
||||||
Button(framecontrol,text="save",command=lambda:self.etageres.save_etageres("cave")).pack()
|
|
||||||
self.etagere_frame.grid(column=1,row=1)
|
|
||||||
|
|
||||||
|
vscrollbar = Scrollbar(self, orient=VERTICAL)
|
||||||
|
self.etagere_frame = Canvas(self, yscrollcommand=vscrollbar.set)
|
||||||
|
vscrollbar.grid(column=2, row=1, sticky=N+S)
|
||||||
|
vscrollbar.config(command=self.etagere_frame.yview)
|
||||||
|
for etagere in self.etageres:
|
||||||
|
self.etageresUI.append(EtagereUI(etagere, self))
|
||||||
|
|
||||||
|
framecontrol = LabelFrame(self.etagere_frame, text="command pannel")
|
||||||
|
framecontrol.grid(column=2, row=1)
|
||||||
|
Button(framecontrol, text="add etagere",
|
||||||
|
command=self.click_add_etagere).pack()
|
||||||
|
Button(framecontrol, text="remove etagere",
|
||||||
|
command=self.click_remove_etagere).pack()
|
||||||
|
Button(framecontrol, text="save",
|
||||||
|
command=lambda: self.etageres.save_etageres("cave")).pack()
|
||||||
|
self.etagere_frame.grid(column=1, row=1)
|
||||||
|
|
||||||
def click_add_etagere(self):
|
def click_add_etagere(self):
|
||||||
child_window=Toplevel(self.fenetre)
|
child_window = Toplevel(self)
|
||||||
Label(child_window,text="select largeur").pack()
|
Label(child_window, text="select largeur").pack()
|
||||||
largeur=StringVar()
|
largeur = StringVar()
|
||||||
Entry(child_window,textvariable=largeur).pack()
|
Entry(child_window, textvariable=largeur).pack()
|
||||||
|
|
||||||
Label(child_window,text="hauteur").pack()
|
Label(child_window, text="hauteur").pack()
|
||||||
hauteur=StringVar()
|
hauteur = StringVar()
|
||||||
Entry(child_window,textvariable=hauteur).pack()
|
Entry(child_window, textvariable=hauteur).pack()
|
||||||
|
|
||||||
Button(child_window,text="OK",command=lambda:add(largeur.get(),hauteur.get())).pack()
|
Button(child_window, text="OK", command=lambda: add(
|
||||||
def add(largeur,hauteur):
|
largeur.get(), hauteur.get())).pack()
|
||||||
|
|
||||||
|
def add(largeur, hauteur):
|
||||||
child_window.destroy()
|
child_window.destroy()
|
||||||
newetagere=self.etageres.add_etagere(int(largeur),int(hauteur))
|
newetagere = self.etageres.add_etagere(int(largeur), int(hauteur))
|
||||||
self.etageresUI.append(EtagereUI(newetagere,self))
|
self.etageresUI.append(EtagereUI(newetagere, self))
|
||||||
|
|
||||||
def click_remove_etagere(self):
|
def click_remove_etagere(self):
|
||||||
child_window=Toplevel(self.fenetre)
|
child_window = Toplevel(self)
|
||||||
Label(child_window,text="select etagere").pack()
|
Label(child_window, text="select etagere").pack()
|
||||||
num=StringVar()
|
num = StringVar()
|
||||||
Entry(child_window,textvariable=num).pack()
|
Entry(child_window, textvariable=num).pack()
|
||||||
Button(child_window,text="OK",command=lambda:remove(num.get())).pack()
|
Button(child_window, text="OK", command=lambda: remove(num.get())).pack()
|
||||||
|
|
||||||
def remove(num):
|
def remove(num):
|
||||||
child_window.destroy()
|
child_window.destroy()
|
||||||
for etagereUI in self.etageresUI:
|
for etagereUI in self.etageresUI:
|
||||||
if etagereUI.etagere.num_etagere== int(num):
|
if etagereUI.etagere.num_etagere == int(num):
|
||||||
print ("find")
|
print("find")
|
||||||
etagereUI.destroy()
|
etagereUI.destroy()
|
||||||
self.etageres.remove_etagere(int(num))
|
self.etageres.remove_etagere(int(num))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def mainloop(self):
|
|
||||||
self.fenetre.mainloop()
|
|
||||||
|
|
||||||
class EtagereUI(LabelFrame):
|
class EtagereUI(LabelFrame):
|
||||||
def __init__(self,etagere,etageresUI):
|
def __init__(self, etagere, etageresUI):
|
||||||
LabelFrame.__init__(self,etageresUI.etagere_frame,text=etagere)
|
LabelFrame.__init__(self, etageresUI.etagere_frame, text=etagere)
|
||||||
self.etagere=etagere
|
self.etagere = etagere
|
||||||
self.etageresUI=etageresUI
|
self.etageresUI = etageresUI
|
||||||
|
|
||||||
for hauteur in range(self.etagere.hauteur):
|
for hauteur in range(self.etagere.hauteur):
|
||||||
for largeur in range(self.etagere.largeur):
|
for largeur in range(self.etagere.largeur):
|
||||||
isset = False
|
isset = False
|
||||||
for bouteille in self.etagere:
|
for bouteille in self.etagere:
|
||||||
if (largeur == bouteille.pos_largeur and hauteur == bouteille.pos_hauteur):
|
if (largeur == bouteille.pos_largeur and hauteur == bouteille.pos_hauteur):
|
||||||
BouteilleUI(bouteille,self)
|
BouteilleUI(bouteille, self)
|
||||||
isset = True
|
isset = True
|
||||||
break
|
break
|
||||||
if isset == False:
|
if not isset:
|
||||||
Cassier_videUI(largeur,hauteur,self)
|
Cassier_videUI(largeur, hauteur, self)
|
||||||
self.grid(row=self.etagere.num_etagere)
|
self.grid(row=self.etagere.num_etagere)
|
||||||
|
|
||||||
|
|
||||||
def click_remove_bouteille(self,bouteilleUI):
|
def click_remove_bouteille(self, bouteilleUI):
|
||||||
self.etagere.remove_bouteille(bouteilleUI.bouteille.pos_largeur, bouteilleUI.bouteille.pos_hauteur)
|
self.etagere.remove_bouteille(
|
||||||
|
bouteilleUI.bouteille.pos_largeur, bouteilleUI.bouteille.pos_hauteur)
|
||||||
bouteilleUI.destroy()
|
bouteilleUI.destroy()
|
||||||
Cassier_videUI(bouteilleUI.bouteille.pos_largeur,bouteilleUI.bouteille.pos_hauteur,self)
|
Cassier_videUI(bouteilleUI.bouteille.pos_largeur,
|
||||||
self["text"]=self.etagere
|
bouteilleUI.bouteille.pos_hauteur, self)
|
||||||
|
self["text"] = self.etagere
|
||||||
def click_add_bouteille(self,cassiervide):
|
|
||||||
|
|
||||||
child_window=Toplevel(self.etageresUI.fenetre)
|
def click_add_bouteille(self, cassiervide):
|
||||||
Label(child_window,text="select color").pack()
|
|
||||||
couleur=StringVar()
|
child_window = Toplevel(self.etageresUI)
|
||||||
|
Label(child_window, text="select color").pack()
|
||||||
|
couleur = StringVar()
|
||||||
couleur.set("rouge")
|
couleur.set("rouge")
|
||||||
OptionMenu(child_window,couleur,*self.etageresUI.etageres.couleur.keys()).pack()
|
OptionMenu(child_window, couleur, *
|
||||||
|
self.etageresUI.etageres.couleur.keys()).pack()
|
||||||
Label(child_window,text="enter millesime").pack()
|
|
||||||
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):
|
Label(child_window, text="enter millesime").pack()
|
||||||
|
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()
|
child_window.destroy()
|
||||||
print(cassiervide.pos_largeur)
|
print(cassiervide.pos_largeur)
|
||||||
print(cassiervide.pos_hauteur)
|
print(cassiervide.pos_hauteur)
|
||||||
newbouteille=self.etagere.add_bouteille(cassiervide.pos_largeur, cassiervide.pos_hauteur, couleur, appelation, millesime)
|
newbouteille = self.etagere.add_bouteille(
|
||||||
|
cassiervide.pos_largeur, cassiervide.pos_hauteur, couleur, appelation, millesime)
|
||||||
cassiervide.destroy()
|
cassiervide.destroy()
|
||||||
BouteilleUI(newbouteille,self)
|
BouteilleUI(newbouteille, self)
|
||||||
self["text"]=self.etagere
|
self["text"] = self.etagere
|
||||||
|
|
||||||
|
|
||||||
class Cassier_videUI(Button):
|
class Cassier_videUI(Button):
|
||||||
|
|
||||||
def __init__(self, pos_largeur, pos_hauteur,etagereUI):
|
def __init__(self, pos_largeur, pos_hauteur, etagereUI):
|
||||||
Button.__init__(self,etagereUI,text="cassier vide",command=lambda:self.etagereUI.click_add_bouteille(self))
|
Button.__init__(self, etagereUI, text="cassier vide",
|
||||||
|
command=lambda: self.etagereUI.click_add_bouteille(self))
|
||||||
self.pos_largeur = pos_largeur
|
self.pos_largeur = pos_largeur
|
||||||
self.pos_hauteur = pos_hauteur
|
self.pos_hauteur = pos_hauteur
|
||||||
self.etagereUI = etagereUI
|
self.etagereUI = etagereUI
|
||||||
self.grid(row=self.pos_hauteur,column=self.pos_largeur)
|
self.grid(row=self.pos_hauteur, column=self.pos_largeur)
|
||||||
|
|
||||||
|
|
||||||
class BouteilleUI(Button):
|
class BouteilleUI(Button):
|
||||||
def __init__(self,bouteille,etagereUI):
|
def __init__(self, bouteille, etagereUI):
|
||||||
self.bouteille=bouteille
|
self.bouteille = bouteille
|
||||||
self.etagereUI=etagereUI
|
self.etagereUI = etagereUI
|
||||||
Button.__init__(self,etagereUI,text=self.bouteille,command=lambda:self.etagereUI.click_remove_bouteille(self))
|
Button.__init__(self, etagereUI, text=self.bouteille,
|
||||||
self["bg"]=self.etagereUI.etageresUI.etageres.couleur[self.bouteille.couleur]
|
command=lambda: self.etagereUI.click_remove_bouteille(self))
|
||||||
self.grid(row=self.bouteille.pos_hauteur,column=self.bouteille.pos_largeur)
|
self["bg"] = self.etagereUI.etageresUI.etageres.couleur[self.bouteille.couleur]
|
||||||
|
self.grid(row=self.bouteille.pos_hauteur,
|
||||||
|
column=self.bouteille.pos_largeur)
|
||||||
|
|
||||||
#new = Etageres.load_etageres("cave")
|
#new = Etageres.load_etageres("cave")
|
||||||
#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, "rose", "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)
|
||||||
#print("vos etagére contiennes {} bouteille".format(new.nbbouteille()))
|
#print("vos etagére contiennes {} bouteille".format(new.nbbouteille()))
|
||||||
#print("vos etagére contiennes {} bouteille de rouge".format(
|
# print("vos etagére contiennes {} bouteille de rouge".format(
|
||||||
#new.nbbouteillecouleur("rouge")))
|
# new.nbbouteillecouleur("rouge")))
|
||||||
#print(new.couleur)
|
# print(new.couleur)
|
||||||
|
|
||||||
|
|
||||||
EtageresUI(Etageres.load_etageres("cave")).mainloop()
|
EtageresUI(Etageres.load_etageres("cave")).mainloop()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user