· 5 years ago · Apr 07, 2020, 05:48 PM
1"""
2Espace d'import de paquet
3"""
4import tkinter
5from tkinter import ttk
6from tkinter import messagebox
7import datetime
8import sqlite3
9
10"""
11Déclaration de classes
12"""
13class mesureEntry():
14 def __init__(self, mesure,ligne,colonne,valeur=0):
15 self.mesure=mesure
16 self.colonne=colonne
17 self.ligne=ligne
18 self.valeur=valeur
19 print(mesure)
20 self.label=tkinter.Label(main,text=mesure)
21 self.label.grid(row=ligne,column=colonne)
22 self.valeur=tkinter.Entry(main, textvariable=tkinter.DoubleVar())
23 self.valeur.grid(row=ligne,column=colonne+1)
24 self.controle=tkinter.Label(main, textvariable=tkinter.StringVar())
25 self.controle.grid(row=ligne, column=colonne+2)
26
27
28 def send_entry(self, database, nom):
29 self.conn=sqlite3.connect(database)
30 self.curs=conn.cursor()
31 querry="""INSERT INTO {}({}) VALUES(?) """.format(capteur,mesure)
32 curs.execute(querry,valeur)
33
34class pot():
35 def __init__(self,*args):
36 self.volumeTotal=0 #float(vTot)
37 self.partInsol=0 #float(partInsol)"""
38 self.partSol=0 #float(partSol)
39 self.pH=0 #float(pH)
40 self.ventMoyen=0 #float(ventMoyen
41 self.distance=0
42 self.alpha=0 #angle coord polaire nord//pot
43 self.beta=0 #angle coord polaire nord //vent
44 #self.pHinit=float(pHinit)
45
46
47 self.CrInsol=0 #float(CrInsol)
48 self.CrSol=0 #float(CrSol)
49 self.AlSol=0 #float(AlSol)
50 self.AlInsol=0 #float(AlInsol)
51 self.MnSol=0 #float(MnSol)
52 self.MnIns=0 #float(MnIns)
53 self.FeSol=0 #float(FeSol)
54 self.FeIns=0 #float(FeIns)
55 self.CaSol=0 #float(CaSol)
56 self.CaIns=0 #float(CaIns)
57 self.MgSol=0 #float(MgSol)
58 self.MgIns=0 #float(MgIns)
59 self.SiSol=0 #float(MgSol)
60 self.SiIns=0 #float(MgIns)
61 #self.composition={}
62
63 print("objet pot() créé")
64
65 def __setattr__(self, atribut, valeur):
66
67 object.__setattr__(self, atribut, valeur)
68 print("La valuer de l'attribut {} à été mise à {}".format(atribut,valeur))
69
70 def __getattr__(self, attribut):
71
72 #print("L'attribut {} n'existe pas".format(attribut))
73 return self
74
75
76"""
77Espace de déclaration de fonction
78"""
79
80
81def createDatabase():
82
83 connecteur=sqlite3.connector(database)
84 curseur=connecteur.cursor()
85 querry="CREATE IF NOT EXISTS {}()".format(name)
86
87def ajout_date():
88 newDate=datetime.date(anneeSpinbox.get(),moisSpinbox.get(),jourSpinbox.get())
89 annee=anneeSpinbox.get()
90 if moisSpinbox.get()<10:
91 mois="0{}".format(moisSpinbox.get())
92 else:
93 mois = moisSpinbox.get()
94
95 if jourSpinbox.get()<10:
96 jour="0{}".format(jourSpinbox.get())
97 else:
98 jour=jourSpinbox.get()
99
100 newDateString=str("{}-{}-{}".format(annee,mois,jour))
101 listeDate.append(newDate)
102 widget_listeDate['values']=listeDate
103 connecteur=sqlite3.connect('aperam_db_v1.db')
104 curseur=connecteur.cursor()
105 curseur.execute(""" INSERT INTO liste_date(date) VALUES (?)""", newDateString)
106 curseur.commit()
107 connecteur.close()
108
109def get_listeDate(listeDate, database):
110 listeTemp=[]
111 connecteur=sqlite3.connect(database)
112 curseur=connecteur.cursor()
113 curseur.execute("""
114 SELECT date FROM liste_date
115 """)
116 listeTemp=curseur.fetchall()
117 listeDate.append()
118 connecteur.close()
119
120def get_listeMesure(*listeMesure,dbName):
121 connector=sqlite3.connect(database)
122 listeTemp=[]
123 querry="SELECT INTO liste_mesure(nom)"
124 curseur=connector.cursor()
125 curseur.execute(querry,data)
126 listeTemp=curseur.fetchall()
127 connector.close()
128
129def save_pot(table, database,*listeMesure):
130 connecteur=sqlite3.connect(database)
131 curseur=connecteur.cursor()
132 temp=pot()
133 querry="INSERT INTO {}({}) values(?)".format(table,listeMesure)
134 curseur.execute(querry)
135
136def load_pot(table,database):
137 temp=pot()
138 querry="SELECT * FROM {}".format(table)
139 connecteur=sqlite3.connect(database)
140 curseur=connecteur.cursor()
141 temp=curseur.fetchone()
142 return temp
143
144
145"""
146Espace de création de la base de donnée
147"""
148connecteur=sqlite3.connect('aperam_db_v1.db')
149curseur=connecteur.cursor()
150curseur.execute(""" CREATE TABLE IF NOT EXISTS liste_date(id INTEGER PRIMARY KEY AUTOINCREMENT, date TEXT)""")
151#curseur.execute(""" CREATE TABLE IF NOT EXISTS liste_mesure ( id INTEGER PRIMARY KEY AUTOINCREMENT, nom TEXT)""")
152curseur.execute(""" CREATE TABLE IF NOT EXISTS liste_pot(id INTEGER PRIMARY KEY AUTOINCREMENT, nom TEXT)""")
153
154"""
155Espace de déclaration et de paramètrage de la fenètre principale
156"""
157main=tkinter.Tk()
158main.title("Interface d\'encodage")
159screenx=int(main.winfo_screenwidth())
160screeny=int(main.winfo_screenheight())
161geom="{}x{}".format(screenx-160,screeny-90)
162main.geometry(geom)
163#print(screenx)
164#print(screeny)
165
166"""
167Espace de déclaration des différentes variables
168"""
169
170listePot=["CARI1", "CARI2", "CARI3",
171 "CARI4", "CARI5", "C15", "C16", "C19","C20","C21", "C22", "C23", "C24", "C25", "C26"]
172
173
174date1=datetime.date(2020,4,3)
175date2=datetime.date(2020,2,6)
176date3=datetime.date(2020,1,9)
177listeDate=[date1,date2,date3]
178
179listeMesure=["volumeTotal","partInsoluble","partSol","pH","ventMoyen","distance","alpha","beta","CrInsol",
180 "CrSol","AlSol","AlInsol","MnSol","MnIns","FeSol","FeIns","CaSol","CaIns","MgSol","MgIns","SiSol","SiIns" ]
181
182stringEntry=tkinter.StringVar()
183intEntry=tkinter.IntVar()
184floatEntry=tkinter.DoubleVar()
185
186anneeSpinbox=tkinter.IntVar()
187moisSpinbox=tkinter.IntVar()
188jourSpinbox=tkinter.IntVar()
189
190
191"""
192Espace de déclaration des widgets
193"""
194
195widget_listePot=ttk.Combobox(main,values=listePot).grid(row=1, column=0)
196
197widget_listeDate=ttk.Combobox(main,textvariable=stringEntry) #.grid(row=0,column=2)
198widget_listeDate.grid(row=0,column=2)
199widget_listeDate['values']=listeDate
200
201widget_ajoutDate_annee=tkinter.Spinbox(main, from_=2000, to=2030, textvariable=anneeSpinbox).grid(row=0,column=3)
202tkinter.Label(main, text="Année").grid(row=1,column=3)
203widget_ajoutDate_mois=tkinter.Spinbox(main, from_=1, to=12, textvariable=moisSpinbox).grid(row=0,column=4)
204tkinter.Label(main, text="Mois").grid(row=1,column=4)
205widget_ajoutDate_jour=tkinter.Spinbox(main,from_=1, to=31, textvariable=jourSpinbox).grid(row=0, column=5)
206tkinter.Label(main, text="Jour").grid(row=1, column=5)
207
208
209tkinter.Button(main, text="Ajouter", command=ajout_date).grid(row=0, column=6)
210
211#mesureEntry(nom, ligne, colonne)
212listeMesure=["volumeTotal","partInsoluble","partSol","pH","ventMoyen","distance","alpha","beta","CrInsol",
213 "CrSol","AlSol","AlInsol","MnSol","MnIns","FeSol","FeIns","CaSol","CaIns","MgSol","MgIns","SiSol","SiIns" ]
214
215mesure_pH=mesureEntry("pH",2,2)
216mesure_volumeTotal=mesureEntry("volume total",3,2)
217"""
218mesure_partInsol=mesureEntry("particules insolubles", 4,2)
219mesure_partSol=mesureEntry("partSol",5,2)
220mesure_ventMoyen=mesureEntry("ventMoyen",6,2)
221mesure_distance=mesureEntry("distance",7,2)
222mesure_alpha=mesureEntry("alpha",8,2)
223mesure_beta=mesureEntry("beta",9,2)
224mesure_CrSol=mesureEntry("CrSol",10,2)
225mesure_CrInsol=mesureEntry("CrInsol",11,2)
226mesure_AlSol=mesureEntry("AlSol",12,2)
227mesure_AlInsol=mesureEntry("AlInsol",13,2)
228mesure_MnSol=mesureEntry("MnSol",14,2)
229mesure_MnInsol=mesureEntry("MnInsol",15,2)
230mesure_FeSol=mesureEntry("FeSol",16,2)
231mesure_FeInsol=mesureEntry("FeInsol",17,2)
232mesure_CaSol=mesureEntry("CaSol",18,2)
233mesure_CaInsol=mesureEntry("CaInsol",19,2)
234mesure_MgSol=mesureEntry("MgSol",20,2)
235mesure_MgInsol=mesureEntry("MgInsol",21,2)
236mesure_SiSol=mesureEntry("SiSol",21,2)
237mesure_SiInsol=mesureEntry("SiInsol",22,2)
238"""
239
240button_quit=tkinter.Button(main, text="Exit", fg='red',command=main.quit).grid(row=50, column=20, padx= 20)
241button_save=tkinter.Button(main, text="Save", command="").grid(row=50,column=5, padx= 30)
242button_load=tkinter.Button(main, text="Load", command="").grid(row=50, column=0, padx = 30)
243
244
245
246
247print(type(widget_listePot))
248
249main.mainloop()