def initialisation(self) : c = master.create_oval((320,220,480,380),fill = change_color('ovale', value = self.consommationOptimisee, valuemin = 0, valuemax = self.conso_max), outline = 'black', width = 5, activeoutline = 'grey', tags = 'Smart_En_Co') self.cercle = c self.titre = Frame(height = 50, width = 150) self.titre.place(x = self.x, y = self.y, anchor = CENTER) self.titre_text = Label(self.titre,text=self.nom,justify=CENTER, bg = master.itemcget(self.cercle,'fill'), font = "Verdana 18 bold").grid() self.jauge._rectangle_fond = self.jauge.canvas.create_rectangle((self.jauge.cercle.x-50,self.jauge.cercle.y+100,self.jauge.cercle.x+45,self.jauge.cercle.y+130), fill = 'white', width =2.0) self.jauge._barre_etat_ini = self.jauge.canvas.create_line((self.jauge.cercle.x-50+70*self.jauge.puiss_ini/self.jauge.puiss_max,self.jauge.cercle.y+100,self.jauge.cercle.x-50+70*self.jauge.puiss_ini/self.jauge.puiss_max,self.jauge.cercle.y+130),width = 3.0,tags = self.jauge.cercle.nom+'i') self.jauge.puissance_actuelle = self.jauge.canvas.create_rectangle((self.jauge.cercle.x-50, self.jauge.cercle.y+100, self.jauge.cercle.x-50+70*self.jauge.puiss/self.jauge.puiss_max, self.jauge.cercle.y+130), fill = 'orange',width = 2.0,tags = self.jauge.cercle.nom+'p') self.jauge.indice_eff = self.jauge.canvas.create_polygon(self.jauge.cercle.x+45+7,self.jauge.cercle.y+100,self.jauge.cercle.x+45+7,self.jauge.cercle.y+130,self.jauge.cercle.x+45+7+30,self.jauge.cercle.y+115, fill = change_color('triangle', brightness = 1-self.etatEffacement), width = 2, outline = 'black',tags = self.jauge.cercle.nom+'e') self.jauge.thermometre = Thermometre(master, 20, 35, 500,220,530,380) self.jauge.thermometre.afficher() self.jauge.canvas.tag_bind(self.jauge.cercle.nom+'e','<Enter>',self.jauge.ouvreinfobulle_e) self.jauge.canvas.tag_bind(self.jauge.cercle.nom+'e','<Leave>',self.jauge.fermeinfobulle) self.jauge.canvas.tag_bind(self.jauge.cercle.nom+'i', '<Enter>',self.jauge.ouvreinfobulle_i) self.jauge.canvas.tag_bind(self.jauge.cercle.nom+'i', '<Leave>',self.jauge.fermeinfobulle) self.jauge.canvas.tag_bind(self.jauge.cercle.nom+'p', '<Enter>',self.jauge.ouvreinfobulle_p) self.jauge.canvas.tag_bind(self.jauge.cercle.nom+'p', '<Leave>',self.jauge.fermeinfobulle) self.jauge.canvas.tag_bind('thermometre', '<Enter>',self.jauge.ouvreinfobulle_t) self.jauge.canvas.tag_bind('thermometre', '<Leave>',self.jauge.fermeinfobulle) master.tag_bind(self.nom,'<Button-2>',self.callback1) master.tag_bind(self.nom,'<Button-3>',self.callback1) master.tag_bind(self.nom,'<Button-1>',self.callback2) self.timer = Frame(height = 50, width = 150) self.timer.place(x = 75, y = 630) self.titre_text = Label(self.timer, text = "Vous pouvez commencer", justify=CENTER, font = "Verdana 18 bold").grid()
def miseAJourAff(self) : c1 = change_color('ovale', value = self.consommationOptimisee, valuemin = 0, valuemax = 83400) master.itemconfigure(self.cercle, fill = c1) self.titre.destroy() self.titre = Frame(height = 50, width = 150) self.titre.place(x = self.x, y = self.y, anchor = CENTER) self.titre_text = Label(self.titre,text=self.nom,justify=CENTER, bg = master.itemcget(self.cercle,'fill'), font = "Verdana 18 bold").grid() self.jauge.mettre_a_jour(self.consommationOptimisee, 0.3) self.jauge.thermometre.changer_temperature(self.jauge.thermometre.temp) if self.graphe_affiche : for i in range(len(appareils)) : c1 = change_color('ovale', value = appareils[i].consommationOptimisee, valuemin = 0, valuemax = appareils[i].conso_max) master.itemconfigure(appareils[i].cercle, fill = c1, outline = change_color('line', value = appareils[i].priorite / len(appareils), valuemin = 0, valuemax = 1)) appareils[i].titre.destroy() appareils[i].titre = Frame(height = 50, width = 150) appareils[i].titre.place(x = appareils[i].x, y = appareils[i].y, anchor = CENTER) appareils[i].titre_text = Label(appareils[i].titre,text=appareils[i].nom,justify=CENTER, bg = master.itemcget(appareils[i].cercle,'fill'), font = "Verdana 10 bold").grid() appareils[i].jauge.mettre_a_jour(appareils[i].consommationOptimisee, 0.3)
def afficher(self): self.fond = self.canvas.create_rectangle(self.x1,self.y1,self.x2,self.y2, fill = 'white', width = 2.0) self.bar = self.canvas.create_rectangle(self.x1,self.y2-(self.temp/self.temp_max)*(self.y2-self.y1),self.x2,self.y2, width = 2, fill = change_color('temp', value = self.temp, valuemin = 0, valuemax = 50), tags = 'thermometre')
def changer_temperature(self, temp): self.temp = temp self.canvas.delete(self.bar) self.bar = self.canvas.create_rectangle(self.x1,self.y2-(self.temp/self.temp_max)*(self.y2-self.y1),self.x2,self.y2,width = 2, fill = change_color('temp', value = temp, valuemin = 0, valuemax = 50), tags = 'thermometre')
def afficherAppareils(self) : n = len(appareils) self.jauge.cacher() self.jauge.thermometre.cacher() for i in range(n): appareils[i].numero = i + 1 appareils[i].x = (50 + 150) / (2 * np.pi / n) * np.cos(2 * np.pi * i / n) + self.x appareils[i].y = - (50 + 150) / (2 * np.pi / n) * np.sin(2 * np.pi * i / n) + self.y appareils[i].droite = master.create_line((self.x + 80 * np.cos(2 * np.pi * i / n) , self.y - 80 * np.sin(2 * np.pi * i / n)), (appareils[i].x - 50 * np.cos(2 * np.pi * i / n), appareils[i].y + 50 * np.sin(2 * np.pi * i / n)), fill = 'black', width = 5) appareils[i].cercle = master.create_oval((appareils[i].x - 50, appareils[i].y + 50, appareils[i].x + 50, appareils[i].y - 50), fill = change_color('ovale', value = appareils[i].consommationOptimisee, valuemin = 0, valuemax = appareils[i].conso_max), outline = change_color('line', value = appareils[i].priorite / len(appareils), valuemin = 0, valuemax = 1), width = 5, activeoutline = 'grey', tags = appareils[i].nom) appareils[i].titre = Frame(height = 30, width = 70) appareils[i].titre.place(x = appareils[i].x, y = appareils[i].y, anchor = CENTER) appareils[i].titre_text = Label(appareils[i].titre,text=appareils[i].nom,justify=CENTER, bg = master.itemcget(appareils[i].cercle,'fill'), font = "Verdana 10 bold").grid() appareils[i].jauge.afficher() master.tag_bind(appareils[i].nom, '<Button-1>',appareils[i].callback2)