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()