# coding: utf-8 from tkinter import * import math import tkinter.ttk as ttk from tkinter.filedialog import * fenetre = Tk() nbre_pieces = IntVar() mat_pieces = StringVar() mat_p = StringVar() ##################################### ##################################### ##################################### def sauvegarde(): fichier = asksaveasfile(mode='w', defaultextension=".bln") fichier.write("############## " + "\n") fichier.write("Pieces assemblees " + "\n") fichier.write("nbre_pieces=" + str(nbre_pieces.get()) + "\n") for i in range(0, nbre_pieces.get()): fichier.write(str(pieces[i].get()) + ";" + str(ep_pieces[i].get()) + ";" + str(mat_pieces[i].get()) + "\n") fichier.close def ajout(nbre_pieces): global counter nbre_pieces.set(counter) pieces_label = Label(p_assemblees, text="Label") pieces_label.grid(row=1, column=1) epaisseur_pieces_label = Label(p_assemblees, text="Epaisseur (mm)") epaisseur_pieces_label.grid(row=1, column=2) materiau_label = Label(p_assemblees, text="Matériau") materiau_label.grid(row=1, column=3) index_pieces_label = Label(p_assemblees, text="Pièce %i" % (counter+1)) index_pieces_label.grid(row=counter + 2, column=0) pieces_temp = Entry(p_assemblees) pieces_temp.grid(row=counter + 2, column=1) pieces.insert(counter, pieces_temp) p_epaisseur = Entry(p_assemblees, width=5) p_epaisseur.grid(row=counter + 2, column=2) ep_pieces.insert(counter, p_epaisseur) mat_p_input = OptionMenu(p_assemblees, mat_p, "1S", "3S", "8S") mat_p_input.grid(row=counter + 2, column=3) mat_pieces.insert(counter, mat_p) print(nbre_pieces.get()) counter += 1 ##################################### ##################################### ##################################### menubar = Menu(fenetre) menu1 = Menu(menubar, tearoff=0) menu1.add_command(label="Enregistrer sous", command=sauvegarde) menu1.add_separator() menu1.add_command(label="Quitter", command=fenetre.destroy) menubar.add_cascade(label="Fichier", menu=menu1) ##################################### ##################################### ##################################### # cadre pieces assemblées ##################################### ##################################### ##################################### global counter counter = 0 pieces = [] ep_pieces = [] mat_pieces = [] p_assemblees = LabelFrame(fenetre, text="Pièces assemblées") p_assemblees.grid(row=3, column=0, columnspan=2, padx=10, pady=20, sticky="nw") index_pieces_label = Label(p_assemblees, text="Pièce %i" % (counter+1)) index_pieces_label.grid(row=counter + 2, column=0) pieces_label = Label(p_assemblees, text="Label") pieces_label.grid(row=1, column=1) pieces_temp = Entry(p_assemblees) pieces_temp.grid(row=counter + 2, column=1) pieces.insert(counter, pieces_temp) epaisseur_pieces_label = Label(p_assemblees, text="Epaisseur (mm)") epaisseur_pieces_label.grid(row=1, column=2) p_epaisseur = Entry(p_assemblees, width=5) p_epaisseur.grid(row=counter + 2, column=2) ep_pieces.insert(counter, p_epaisseur) materiau_label = Label(p_assemblees, text="Matériau") materiau_label.grid(row=1, column=3) mat_p_input = OptionMenu(p_assemblees, mat_p, "1S", "3S", "8S") mat_p_input.grid(row=counter + 2, column=3) mat_pieces.insert(counter, mat_p) counter += 1 ajout_p = Button(p_assemblees, text="Ajouter pièce", command=lambda: ajout(nbre_pieces)) ajout_p.grid(row=0, column=0) ##################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### ###################################################################################################### fenetre.config(menu=menubar) fenetre.mainloop()