def reserver( numJeu,numAdh=0): #idJeu/extension + idAdherent + booléenJeu (Vrai si l'id en param est un Jeu, Faux si c'est une extension # + booléenExtension (Par défaut à faux, vrai si on ne réserve qu'UNE extension) def CallBackEmprunt(): #Fonction de confirmation DANS la fonction de fenetre. if askyesno("Confirmation", "Êtes-vous sûr de vouloir emprunt ce jeu ?"): return fResa.quit() #Ferme si "oui" else : return def retourJeu(numJeu): fResa.destroy() return ficheJeu(numAdh, numJeu) def retourCatalogue(): fResa.destroy() return catalogue() fResa = Tk() fResa.title("Reservation du jeu " + str(Jeu.getNomJeu(numJeu))) fResa.grid_columnconfigure(0,weight=1) fResa.grid_rowconfigure(20,weight=21) p = PanedWindow(fResa, orient = HORIZONTAL, height=100, width=300) p.grid(row=1) p.add(Label(p, text="Bonjour Pseudo", bg="white", anchor=CENTER, width=20)) p.add(Button(p, text="Retour au catalogue", bg="orange", activebackground="orange", borderwidth=10, width=20, command= retourCatalogue )) p.add(Button(p, text="Retour au jeu", bg="orange", activebackground="orange", borderwidth=10, width=20, command= partial(retourJeu, numJeu))) p.add(Button(p, text="Quitter", bg="white", activebackground="black", borderwidth=10, width=10, command = fResa.destroy )) pd = PanedWindow(fResa, orient = HORIZONTAL, height = 20, width = 400) pd.grid(row=2) pd.add(Label(pd, text="Date de début : ", anchor=CENTER, width= 20)) ddd = Spinbox(pd, from_=1, to=31, width= 5) ddm = Spinbox(pd, from_=1, to=12, width= 5) ddy = Spinbox(pd, from_=2015, to=2017, width= 8) pd.add(ddd) pd.add(ddm) pd.add(ddy) pt = PanedWindow(fResa, orient = HORIZONTAL, height = 20, width = 400) pt.grid(row=3) pt.add(Label(pt, text="Date de fin : ", anchor=CENTER, width= 20)) dfd = Spinbox(pt, from_=1, to=31, width= 5) dfm = Spinbox(pt, from_=1, to=12, width= 5) dfy = Spinbox(pt, from_=2015, to=2017, width= 8) pt.add(dfd) pt.add(dfm) pt.add(dfy) Button(fResa, text ="Reserver !", command = CallBackEmprunt).grid(row=4) fResa.mainloop() donneesEmprunt = [ddd.get(), ddm.get(), ddy.get(), dfd.get(), dfm.get(), dfy.get()] fResa.destroy() return donneesEmprunt
def afficheExtensions(idJeu, modeAdmin): def retourCatalogue(): fextension.destroy() return catalogue() def lancerEmprunt(i): fextension.destroy() return formulaireEmprunt(i) def lancerReserv(i): fextension.destroy() return reserver(i) fextension=Tk() fextension.title("Extension(s) du jeu ") fextension.grid_columnconfigure(0,weight=1) fextension.grid_rowconfigure(20,weight=21) p = PanedWindow(fextension, orient = HORIZONTAL, height=100, width=600) p.grid(row=1, column=1, columnspan=4) p.add(Label(p, text="Bonjour pseudo", bg="white", anchor=CENTER, width=20)) p.add(Button(p, text="Retour au catalogue", bg="orange", activebackground="orange", borderwidth=10, width=20, command= retourCatalogue )) if (modeAdmin): p.add(Button(p, text="Ajouter Extension", bg="cyan", activebackground="cyan", borderwidth=10, width=20, command=rien)) p.add(Button(p, text="Quitter", bg="white", activebackground="black", borderwidth=10, width=10, command = fextension.destroy )) if (Jeu.aDesExtensions(idJeu)==False): Label(fextension, text="Pas d'extension", bg="white", width=25).grid(row=2) else: Label(fextension, text="Nom Extension", bg="red", width=30).grid(row=2, column=2) #affiche "Nom Extension" au dessus des noms Label(fextension, text="Nom Jeu", bg="red", width=30).grid(row=2, column=1) j = Jeu.getExtensions(idJeu) k=3 for i in j: Label(fextension, text=str(Extension.getNomExtension(i[0])), bg="white", width=25).grid(row=k, column=2) Label(fextension, text=str(Jeu.getNomJeu(Extension.getIdJeu(i[0]))), bg="white", width=25).grid(row=k, column=1) Button(fextension, text="Emprunt", command = partial(lancerEmprunt, i[0]),bg="green", width=13,activebackground="green").grid(row=k, column=4) Button(fextension, text="Reserv", command = partial(lancerReserv, i[0]),bg="red", width=13,activebackground="red").grid(row=k, column=5) Label(fextension, text="Quantité disponible", bg="red", width=30).grid(row=2, column=3) Label(fextension, text=Extension.getNbreTotalExtension(i[0]), bg="white", width=25).grid(row=k,column=3) if (modeAdmin): Button(fextension, text="Modifier", command = rien, bg="yellow", width=13, activebackground="yellow").grid(row=k, column=6) Button(fextension, text="Supprimer", command=rien, bg="yellow", width=13, activebackground="yellow").grid(row=k, column=7) k=k+1 fextension.mainloop()
def ficheJeu(numAdherent, numJeu): #idAdherent + idJeu def retourCatalogue(): fficheJeu.destroy() return catalogue(numAdherent) def lancerEmprunt(i): fficheJeu.destroy() return formulaireEmprunt(i) def lancerReserv(i): fficheJeu.destroy() return reserver(i) def lancerExtension(i): fficheJeu.destroy() return afficheExtensions(i) fficheJeu = Tk() fficheJeu.title(str(Jeu.getNomJeu(numJeu))) fficheJeu.grid_columnconfigure(0,weight=1) fficheJeu.grid_rowconfigure(20,weight=21) p = PanedWindow(fficheJeu, orient = HORIZONTAL, height=100, width=600) p.grid(row=1, column=1, columnspan=3) p.add(Label(p, text="Bonjour Pseudo", bg="white", anchor=CENTER, width=20)) p.add(Button(p, text="Retour au catalogue", bg="orange", activebackground="orange", borderwidth=10, width=20, command= retourCatalogue )) p.add(Button(p, text="Quitter", bg="white", activebackground="black", borderwidth=10, width=10, command = fficheJeu.destroy )) Label(fficheJeu, text=str(Jeu.getNomJeu(numJeu)), bg="orange", width = 50, height=5, anchor = CENTER).grid(row=2, column=1, columnspan=3) Label(fficheJeu, text="Année de parution : ", bg="green", width = 15).grid(row=3, column=1) Label(fficheJeu, text=str(Jeu.getAnneeJeu(numJeu)), bg="orange", width = 15).grid(row=3, column=2) Label(fficheJeu, text="Age Mininimum : ", bg="green", width = 15).grid(row=4, column=1) Label(fficheJeu, text=str(Jeu.getAgeJeu(numJeu)), bg="orange", width = 15).grid(row=4, column=2) try: photo = PhotoImage(file="imageJeu/" + str(numJeu) + ".gif") canvas = Canvas(fficheJeu,width=350, height=200) canvas.create_image(0, 0, anchor=NW, image=photo) canvas.grid(row=3, rowspan=3, column=3) except: print "" Label(fficheJeu, text="Nombre de Joueurs : ", bg="green", width = 15).grid(row=5, column=1) Label(fficheJeu, text=str(Jeu.getNbJoueurJeu(numJeu)), bg="orange", width = 15).grid(row=5, column=2) Label(fficheJeu, text="Quantité en stock : ", bg="green", width = 15).grid(row=6, column=1) Label(fficheJeu, text=str(Jeu.getQuantiteJeu(numJeu)), bg="orange", width = 15).grid(row=6, column=2) Label(fficheJeu, text="Auteur : ", bg="green", width = 15).grid(row=7, column=1) Label(fficheJeu, text=str(Jeu.getAuteurJeu(numJeu)), bg="orange", width = 15).grid(row=7, column=2) Label(fficheJeu, text="Illustrateur : ", bg="green", width = 15).grid(row=8, column=1) Label(fficheJeu, text=str(Jeu.getIllustrateurJeu(numJeu)), bg="orange", width = 15).grid(row=8, column=2) Label(fficheJeu, text="Editeur : ", bg="green", width = 15).grid(row=9, column=1) Label(fficheJeu, text=str(Jeu.getEditeurJeu(numJeu)), bg="orange", width = 15).grid(row=9, column=2) Label(fficheJeu, text="Synopsis : ", bg="green", width = 15).grid(row=10, column=1) Label(fficheJeu, text=str(Jeu.getSynopsisJeu(numJeu)), bg="orange", width = 15).grid(row=10, column=2) Label(fficheJeu, text="Action", bg="green", width = 15).grid(row=7, column=3) Button(fficheJeu, text="Voir ses extensions", command = partial(lancerExtension,numJeu),bg="green", width=15,activebackground="green").grid(row=8, column=3) Button(fficheJeu, text="Emprunt", command = partial(lancerEmprunt, numJeu),bg="green", width=15,activebackground="green").grid(row=9, column=3) Button(fficheJeu, text="Reserv", command = partial(lancerReserv, numJeu),bg="red", width=15,activebackground="red").grid(row=10, column=3) fficheJeu.mainloop()
def formulaireJeu(idJeu = -1): #Par défaut, -1 = creation """Prend l'id d'un jeu pour le modifier, ou -1 pour en creer un nouveau""" FJ = Tk() FJ.wm_attributes("-topmost" , -1) #Mets la fenetre au premier plan dès son apparition. idJ = IntVar() idJ.set(idJeu) Creation = BooleanVar() #Les variables declarée comme ceci semble être utilisable pour les fonctions imbriqué de Tkinter Creation.set(False) if idJ.get() < 0 : #Cas de creation du jeu, valeur par defaut nomJ="Nom du jeu" anneeJ=1960 ageJ=0 nbJoueurJ="00-00" quantiteJ=0 auteurJ="Auteur du jeu" illustrateurJ="Illustrateur du jeu" editeurJ="Editeur du jeu" estEmpruntableJ=False synopsisJ="Description sommaire du jeu." Creation.set(True) else : #Jeu existant, recuperation, des infos nomJ=Jeu.getNomJeu(idJ.get()) anneeJ=Jeu.getAnneeJeu(idJ.get()) ageJ=Jeu.getAgeJeu(idJ.get()) nbJoueurJ=Jeu.getNbJoueurJeu(idJ.get()) quantiteJ=Jeu.getQuantiteJeu(idJ.get()) auteurJ=Jeu.getAuteurJeu(idJ.get()) illustrateurJ=Jeu.getIllustrateurJeu(idJ.get()) editeurJ=Jeu.getEditeurJeu(idJ.get()) estEmpruntableJ=Jeu.estEmpruntable(idJ.get()) synopsisJ=Jeu.getSynopsisJeu(idJ.get()) def submit(): #Fonction de confirmation DANS la fonction de fenetre. if askyesno("Confirmation", "Enregister le jeu ?"): FJ.quit() if Creation.get(): idJ.set(Jeu.ajoutJeu(nomJeu.get(),anneeJeu.get(),editeurJeu.get())) Jeu.setNomJeu(idJ.get(),nomJeu.get()) Jeu.setAnneeJeu(idJ.get(),anneeJeu.get()) Jeu.setAgeJeu(idJ.get(),ageJeu. get()) Jeu.setNbJoueurJeu(idJ.get(),nbJoueurJeu.get()) Jeu.setQuantiteJeu(idJ.get(),quantiteJeu.get()) Jeu.setAuteurJeu(idJ.get(),auteurJeu.get()) Jeu.setIllustrateurJeu(idJ.get(),illustrateurJeu.get()) Jeu.setEditeurJeu(idJ.get(),editeurJeu.get()) Jeu.setEmpruntable(idJ.get(),Empbool.get()) Jeu.setSynopsisJeu(idJ.get(),synopsisJeu.get()) return FJ.destroy() #Ferme après avoir enregistre. else : return def cancel(): #Ferme la fenetre if askyesno("Quitter", "Annuler le formulaire ?"): FJ.quit() #Ferme la fenetre return FJ.destroy() #N'enregistre rien else : return T1 = LabelFrame(FJ, text="Formulaire de jeu :") NJ = Label(FJ, text="Nom du jeu :") AnJ = Label(FJ, text="Année de sortie du jeu :") AgJ = Label(FJ, text="Ages du public du jeu :") NbJ = Label(FJ, text="Nombre de joueur pour ce jeu($$-$$) :") QJ = Label(FJ, text="Nombre d'exemplaire total du jeu :") AJ = Label(FJ, text="Auteur du jeu :") IJ = Label(FJ, text="Illustrateur du jeu :") EJ = Label(FJ, text="Editeur du jeu :") Emp = Label(FJ, text="Ce jeu peut-etre Emprunté :") SJ =Label(FJ, text="Description du jeu (200caractères) :") AddJ = Label(FJ, text="Ajouter le jeu :") #Titre T1.pack() #Nom du jeu (champs à remplir) NJ.pack() nomJeu = StringVar() nomJeu.set(nomJ) NJI = Entry(FJ,textvariable=nomJeu,width=40) NJI.pack() #Annee Jeu (graduation) AnJ.pack() anneeJeu = IntVar() anneeJeu.set(anneeJ) AnJI = Spinbox(FJ, from_=1960, to = date.today().year, textvariable=anneeJeu) AnJI.pack() #Age joueurs(Champs à remplir) AgJ.pack() ageJeu=IntVar() ageJeu.set(ageJ) AgJI = Spinbox(FJ, from_=0, to = 20, textvariable=ageJeu) AgJI.pack() #Nombre de joueurs (graduation) NbJ.pack() nbJoueurJeu=StringVar() nbJoueurJeu.set(nbJoueurJ) NbJI = Entry(FJ, textvariable=nbJoueurJeu, width=45) NbJI.pack() #Quantite d'exemplaire du jeu (gradutation) QJ.pack() quantiteJeu = IntVar() quantiteJeu.set(quantiteJ) QJI = Spinbox(FJ, from_=0, to=999, textvariable=quantiteJeu) QJI.pack() #Auteur du jeu (champs à remplir) AJ.pack() auteurJeu=StringVar() auteurJeu.set(auteurJ) AJI = Entry(FJ, textvariable=auteurJeu, width = 45) AJI.pack() #Illustrateur du jeu (champs à remplir) IJ.pack() illustrateurJeu=StringVar() illustrateurJeu.set(illustrateurJ) IJI = Entry(FJ, textvariable=illustrateurJeu, width = 45) IJI.pack() #Editeur du jeu (champs à remplir) EJ.pack() editeurJeu=StringVar() editeurJeu.set(editeurJ) EJI = Entry(FJ, textvariable=editeurJeu, width = 45) EJI.pack() #Empruntable ou non ? (case à cocher) Emp.pack() Empbool = BooleanVar() Empbool.set(estEmpruntableJ) EmpI = Checkbutton(FJ, text="Est-il empruntable?", variable = Empbool) EmpI.pack() #Synospis du jeu (Champs à remplir) SJ.pack() synopsisJeu = StringVar() synopsisJeu.set(synopsisJ) SJI = Entry(FJ, textvariable=synopsisJeu, width = 45) SJI.pack() #Fin : Confirmation de l'ajout/modification du jeu, appel de la fonction submit (sans parenthèses) AddJ.pack() AddJI = Button(FJ, text="Confirmer", command = submit) AddJI.pack() #Fin : Annulation.(marche pas encore) Cancel = Button(FJ, text="Annuler", command = cancel) Cancel.pack() #Lancement de la fenetre FJ.mainloop()
def formulaireExt(idExt = -1, idJeu = 0): #Par défaut, idExt =-1 => creation """Prend l'id d'une extension pour la modifier, ou -1 pour en creer une nouvelle""" FE = Tk() FE.title("Formulaire d'extension") FE.wm_attributes("-topmost" , -1) #Mets la fenetre au premier plan dès son apparition. idE = IntVar() idE.set(idExt) Creation = BooleanVar() #Les variables declarée comme ceci semble être utilisable pour les fonctions imbriqué de Tkinter Creation.set(False) idJ = IntVar() idJ.set(idJeu) if idE.get() < 0 : #Cas de creation du Ext, valeur par defaut. NomJeuE = Jeu.getNomJeu(idJeu) nomE="Nom de l'extension" quantiteE=0 Creation.set(True) else : #Extension existant, recuperation, des infos NomJeuE = Jeu.getNomJeu(idJeu) nomE=Extension.getNomExt(idE.get()) quantiteE=Ext.getQuantiteExt(idE.get()) def submit(): #Fonction de confirmation DANS la fonction de fenetre. if askyesno("Confirmation", "Enregister L'extension ?"): FE.quit() if Creation.get(): Extension.ajoutExtension(idJ.get(),nomExt.get(),quantiteExt.get()) else : Extension.setNomExt(idE.get(),nomExt.get()) Ext.setQuantiteExt(idE.get(),quantiteExt.get()) return FE.destroy() #Ferme après avoir enregistre. else : return def cancel(): #Ferme la fenetre if askyesno("Quitter", "Annuler le formulaire ?"): FE.quit() #Ferme la fenetre return FE.destroy() #N'enregistre rien else : return T1 = LabelFrame(FE, text="Formulaire de l'extension :") NJE = Label(FE, text="Nom du jeu de l'extension :") NE = Label(FE, text="Nom de l'extension :") QE = Label(FE, text="Nombre d'exemplaire total de l'extension :") AddE = Label(FE, text="Ajouter l'extension :") #Titre T1.pack() #Nom du jeu (recupère l'id du jeu dans la liste) NJE.pack() NomJeu = Label(FE, text =Jeu.getNomJeu(idJeu)) NomJeu.pack() #Nom de l'extension (champs à remplir) NE.pack() nomExt = StringVar() nomExt.set(nomE) NEI = Entry(FE,textvariable=nomExt,width=40) NEI.pack() #Quantite d'exemplaire de l'extension (gradutation) QE.pack() quantiteExt = IntVar() quantiteExt.set(quantiteE) QEI = Spinbox(FE, from_=0, to=999, textvariable=quantiteExt) QEI.pack() #Fin : Confirmation de l'ajout/modification du extension, appel de la fonction submit (sans parenthèses) AddE.pack() AddEI = Button(FE, text="Confirmer", command = submit) AddEI.pack() #Fin : Annulation.(marche pas encore) Cancel = Button(FE, text="Annuler", command = cancel) Cancel.pack() #Lancement de la fenetre FE.mainloop()