rendered paste bodyfrom Tkinter import *import timeclass Mafeuille: "les routines de ma feuille" def __init__ (self): """Constructeur de la fenêtre principale""" self.listevente = [] self.listeachat = [] self.ctrldate = 0 self.montexte = "" self.feuille = Tk() self.feuille.title("Livre de Recette") self.feuille.configure(bg="dark grey") self.feuille.resizable(width=False, height=False) self.laframe = Frame(self.feuille, bg="light grey", height=70,width=900) self.laframe.place(x=0, y=0) self.laframe.pack() self.kanevas=Frame (self.feuille, bg="dark grey", height=300,width=900) self.kanevas.place(x=0, y=0) self.kanevas.pack() self.txt1 = LabelFrame(text="Date du jour", fg='blue', bg="light grey", font="Arial 12", padx=5, pady=5) self.txt1.place(x=10, y=5)# TODO: ajout automatique de la date ???# date = time.strftime("%d-%m-%Y")# print date# self.txt1 = LabelFrame(self.feuille, text="Encodage des recettes du:", fg='blue', bg="light grey", font="Arial 12", padx=5, pady=5)# self.txt1.place(x=10, y=5)# self.entree = Label(self.txt1, text=date, bg="light grey", fg="red", font="Arial 12")# self.entree.pack()# self.entent1.focus_set() self.entree = Entry(self.txt1, width=15, bg="light blue", fg="blue", font="Arial 12") self.entree.place (x=10, y=5) self.entree.pack() self.entree.focus_set() ### creation des champs d'entrée. avec leurs labels. self.pv = LabelFrame(text='Prix de vente TVAC', fg='blue', bg="dark grey", font="Arial 12", height=275, width=150) self.pv.place(x=10, y=75) self.entent1 = Entry (width=10, bg="blue",fg="yellow", font="Arial 10") self.entent1.place(x=50, y= 100) self.pa = LabelFrame(text="Prix d'achat TVAC", fg='blue', bg="dark grey", font="Arial 12", height=275, width=150) self.pa.place(x=190, y=75) self.entent2 = Entry(width=10, bg="blue",fg="yellow", font="Arial 10") self.entent2.place(x=230, y= 100) self.total = LabelFrame(text="Total des ventes", fg='blue', bg="dark grey", font="Arial 12", height=275, width=150) self.total.place(x=370, y=75) self.stotal= Entry(width=10, bg="light blue",fg="red", font="Arial 10") self.stotal.place(x=65, y=130) self.stotal2= Entry(width=10, bg="light blue",fg="red", font="Arial 10") self.stotal2.place(x=245, y=130) ### création du scrollbar self.scrollbar = Scrollbar(self.feuille, orient=VERTICAL) self.scrollbar.config(command=self.yview) self.scrollbar.place(x=487, y=160) ### création des listebox self.entlist1 = Listbox(width=10, bg="light grey", fg="red", font="Arial 10", yscrollcommand=self.scrollbar.set) self.entlist1.place(x=65, y=160) self.entlist2 = Listbox(width=10, bg="light grey", fg="red", font="Arial 10", yscrollcommand=self.scrollbar.set) self.entlist2.place(x=245, y=160) self.ltotal = Listbox(width=10, bg="light grey", fg="red", font="Arial 10", yscrollcommand=self.scrollbar.set) self.ltotal.place(x=410, y=160) ### gestion des évenement champs d'entrée. self.entree.bind("<Return>", self.actiondate)# self.entent1.bind("<Return>", self.actionvente)# self.entent2.bind("<Return>", self.actionachat) self.entent1.bind("<Return>", self.actioninsert) self.entent2.bind("<Return>", self.actioninsert) self.feuille.mainloop() def actiondate(self,event): self.entreedate = str (self.entree.get()) self.entree.destroy() self.txt1.configure(text="Encodage des recettes du") self.entree = Label(self.txt1, text=self.entreedate, bg="light grey", fg="red", font="Arial 12") self.entree.pack() self.entent1.focus_set()# def actionvente(self,event):# self.entrevente= str (self.entent1.get())# self.listevente.append(self.entrevente)# self.entent2.focus_set()# # def actionachat(self,event):## i=total=total2=0# self.entreachat= str (self.entent2.get())# self.listeachat.append(self.entreachat)# self.entent1.delete(0,END)# self.entent2.delete(0,END)# self.entlist1.delete(0,END)# self.entlist2.delete(0,END)# self.ltotal.delete(0,END)# self.stotal.delete(0,END)# self.stotal2.delete(0,END)## for lachat in self.listevente:## strlachat= " " + str(lachat)## self.entlist1.insert(i, strlachat)## total= total + float(lachat)## strtotal = " " + str(total)## self.ltotal.insert(i, strtotal)## i=i+1## self.stotal.insert(0,total)## for lvente in self.listeachat:## strlvente = " " + str(lvente)## self.entlist2.insert(i, strlvente)## total2= total2 + float(lvente)## strtotal2 = " " + str(total2)### self.ltotal.insert(i, strtotal)## i=i+1## self.stotal2.insert(0, total2)# self.action(self.listevente, self.entlist1, self.stotal, self.ltotal)# self.action(self.listeachat, self.entlist2, self.stotal2)# self.entent1.focus_set() def actioninsert(self, event): if event.widget == self.entent1 : self.entrevente= str (self.entent1.get()) self.listevente.append(self.entrevente) self.entent2.focus_set() else : self.entreachat= str (self.entent2.get()) self.listeachat.append(self.entreachat) self.entent1.delete(0,END) self.entent2.delete(0,END) self.entlist1.delete(0,END) self.entlist2.delete(0,END) self.ltotal.delete(0,END) self.stotal.delete(0,END) self.stotal2.delete(0,END) self.action(self.listevente, self.entlist1, self.stotal, self.ltotal) self.action(self.listeachat, self.entlist2, self.stotal2) self.entent1.focus_set() def action(self, l, list, entry, listbox=''): i=total=0 for e in l: stre = " " + str(e) list.insert(i, stre) total = total + float(e) strtotal = " " + str(total) if listbox != '' : listbox.insert(i, strtotal) i=i+1 entry.insert(0, total) def yview(self, *args): apply(self.entlist1.yview, args) apply(self.entlist2.yview, args) apply(self.ltotal.yview, args)# Programme principal :if __name__ == '__main__' : Mafeuille()