1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
| # -*- coding:utf-8 -*-
from tkinter import *
from lib1 import *
import csv
import codecs
produits = []
# Récupération de la liste des produits
def loadCSV(fname, liste):
file = codecs.open(fname, "r", "utf-8")
try:
reader = csv.reader(file, delimiter=';')
for row in reader:
liste.append(row)
finally:
file.close()
return liste
# Enregistrement des ajouts d'une liste dans un fichier
def enregistrer(fname, liste):
print("debug1")
l = 0
file = codecs.open(fname, "r", "utf-8")
try:
print("debug2")
reader = csv.reader(file, delimiter=';')
for row in reader:
print("debug l:"+str(l))
l += 1
new = liste[l:len(liste)]
finally:
file.close()
file = codecs.open(fname, "a", "utf-8")
writer = csv.writer(file, delimiter=';' )
for row in new:
writer.writerow(row)
# Ajout d'un produit
def ajoutProduit():
w_ajout_produit = Toplevel(w_root)
def fermer():
n = nom.get()
r = reference.get()
f = fournisseur.get()
produits.append([n, r, f])
w_ajout_produit.destroy()
print("debug : longueur de produits = " + str(len(produits)))
nom = StringVar()
reference = StringVar()
fournisseur = StringVar()
lb_nom = Label(w_ajout_produit, text="Nom : ").grid(row=0, column=0, padx=5, pady=5, sticky=W)
lb_reference = Label(w_ajout_produit, text="Référence : ").grid(row=1, column=0, padx=5, pady=5, sticky=W)
lb_fournisseur = Label(w_ajout_produit, text="Fournisseur : ").grid(row=2, column=0, padx=5, pady=5, sticky=W)
e_nom = Entry(w_ajout_produit, textvariable=nom).grid(row=0, column=1, padx=5, pady=5, sticky=E)
e_reference = Entry(w_ajout_produit, textvariable=reference).grid(row=1, column=1, padx=5, pady=5, sticky=E)
e_fournisseur = Entry(w_ajout_produit, textvariable=fournisseur).grid(row=2, column=1, padx=5, pady=5, sticky=E)
btn_ajout = Button(w_ajout_produit, text="Ajouter le produit", command=fermer)
btn_ajout.grid(row=3, column=0, columnspan=2, padx=5, pady=5)
loadCSV("produits.txt", produits)
######################################
# Affichage de la fenêtre principale #
######################################
w_root = Tk()
# Barre des menus
menubar = Menu(w_root)
# Fichier
menu_fichier = Menu(menubar, tearoff=0)
menubar.add_cascade(label='Fichier', menu=menu_fichier)
# Fichier -> Nouveau
menu_nouveau = Menu(menu_fichier, tearoff=0)
menu_fichier.add_cascade(label='Nouveau', menu=menu_nouveau)
# Fichier -> Nouveau -> Sous-menus
menu_nouveau.add_command(label='Produit', command=ajoutProduit)
#menu_nouveau.add_command(label='Recette', command=ajoutRecette)
#menu_nouveau.add_command(label='Préparation', command=ajoutPreparation)
#menu_nouveau.add_command(label='Application', command=ajoutApplication)
#menu_nouveau.add_command(label='Mesure CIE L*a*b*', command=ajoutMesure_CIE)
#menu_nouveau.add_command(label='Mesure spectrale', command=ajoutMesure_Spectrale)
# Fichier -> Ouvrir
#menu_ouvrir = Menu(menu_fichier, tearoff=0)
#menu_fichier.add_cascade(label='Ouvrir', menu=menu_ouvrir)
# Fichier -> Ouvrir -> Sous-menus
#menu_ouvrir.add_command(label='Produit', command=ouvrirProduit)
#menu_ouvrir.add_command(label='Recette', command=ouvrirRecette)
#menu_ouvrir.add_command(label='Préparation', command=ouvrirPreparation)
#menu_ouvrir.add_command(label='Application', command=ouvrirApplication)
#menu_ouvrir.add_command(label='Mesure CIE', command=ouvrirMesure_CIE)
#menu_ouvrir.add_command(label='Mesure spectrale', command=ouvrirMesure_Spectrale)
# Fichier -> Enregistrer
menu_enregistrer = Menu(menu_fichier, tearoff=0)
menu_fichier.add_command(label='Enregistrer', command=enregistrer("produits.txt", produits))
h = 640
w = 480
fps = 16
w_root.config(menu=menubar)
w_root.geometry("640x480")
w_root.title('Utilitaire colorimétrique')
def update():
h=w_root.winfo_height()
w=w_root.winfo_width()
l_titre.grid()
f_center.grid(padx=(w/2)-(f_center.winfo_width()/2), pady=(h/2)-(f_center.winfo_height()/2))
w_root.after(fps, update)
f_center = Frame(w_root)
l_titre = Label(f_center, text="Utilitaire Colorimétrie")
#placer le label dans la frame
l_titre.grid()
#placer la frame en la centrant
f_center.grid(padx=w/2, pady=h/2)
w_root.after(fps, update)
w_root.mainloop() |
Partager