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
|
# coding : utf-8
import tkinter as tk
import fonctions as fc
class ihm :
# Initialisation de ma classe
def __init__(self):
# Création de la fenêtre
self.maFenetre = tk.Tk()
self.maFenetre.title("BINAIRE")
self.maFenetre.geometry("800x300")
self.maFenetre.minsize(480, 300)
self.maFenetre.iconbitmap("images/binaire.ico")
# Création d'un frame
self.frame = tk.Frame(self.maFenetre)
# Création des objets de la fenêtre
self.led(self)
self.labelInfo(self)
self.saiDecimal(self)
self.labelResult(self)
self.btn(self)
self.affichage(self)
# Définition de mes images de led
def led(self, arg):
# Ajout de ma led
largeur = 60 # Largeur de la led
hauteur = 60 # Hauteur de la led
nbLed = 8 # Nombre de led
# Initialisation du tableau de led
self.elem = tuple({} for i in range(nbLed))
# Création des leds
for i in range(nbLed):
self.elem[i]["led"] = tk.PhotoImage(file="images/led_green.png")
self.elem[i]["canvas"] = tk.Canvas(self.frame, width=largeur, height=hauteur)
self.elem[i]["canvas"].create_image(largeur / 2, hauteur / 2, image=self.elem[i]["led"])
self.elem[i]["canvas"].grid(row=0, column=i)
# for
# Création du label contenant une information
def labelInfo(self, arg):
# Création d'un label
labelDeci = tk.Label(self.frame, text="Votre valeur décimale : ")
labelDeci.grid(row=2, column=0, columnspan=2)
# Création du champ de saisie de la valeur à convertir
def saiDecimal(self, arg):
# Création d'un champ de saisie
self.valDeci = tk.Entry(self.frame)
self.valDeci.grid(row=2, column=2, columnspan=2)
# Création du label contenant le résultat de la conversion
def labelResult(self, arg):
self.result = tk.Label(self.frame)
self.result.grid(row=2, column=6)
#self.result['text'] = str(self.resultat.resultBin)
#print("==>" + str(self.result))
# Création du bouton pour la convertion et pour la fermeture de la fenêtre
def btn(self, arg):
# Création d'un bouton pour la convertion
btnConvert = tk.Button(self.frame, text="Convertir", command=lambda: fc.controle(self.valDeci.get(), self.result))
btnConvert.grid(row=2, column=4)
# Création d'un bouton close
btnClose = tk.Button(self.frame, text="Fermer", command=self.maFenetre.destroy)
btnClose.grid(row=7, column=2)
# Gestion de l'affichage
def affichage(self, arg):
# Affichage de la frame
self.frame.pack()
#self.mainloop()
# Actualisation des led en fonction du résultat
def actualiseLed(self, arg):
binaire = self.result
for i in range(8):
if int(binaire[i]) == 1:
ledImg = "images/led_green.png"
else:
ledImg = "images/led_gray.png"
self.elem[i]["led"] = tk.PhotoImage(file=ledImg)
self.elem[i]["canvas"] = tk.Canvas(self.frame, width=largeur, height=hauteur)
self.elem[i]["canvas"].create_image(largeur / 2, hauteur / 2, image=self.elem[i]["led"])
self.elem[i]["canvas"].grid(row=0, column=i) |