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
| #!/usr/bin/python
# -*- coding:Utf-8 -*-
import Tkinter
from PIL import Image, ImageTk
#classe contenant le liens vers les images et une fonction d'assemblage de labels stockés dans des dictionnaires :
class panneaux:
def __init__(self, parent):
#importation des images de fond (chemin d'acces) :
self.image_descriptif=ImageTk.PhotoImage(Image.open('../images/descriptif.jpg'))
self.image_variable=ImageTk.PhotoImage(Image.open('../images/variable.jpg'))
self.parent=parent
#assemblage des panneaux :
def assemblage(self, coin_inf_g, clef_dico_inf_g, milieu, clef_dico_milieu):
LABEL_DESCRIPTIF=coin_inf_g.dico_label[clef_dico_inf_g]()
LABEL_DESCRIPTIF.grid(row=1, column=0, rowspan=2, sticky='NSEW')
LABEL_DESCRIPTIF.grid_propagate(0)
LABEL_VARIABLE=milieu.dico_label[clef_dico_milieu]()
LABEL_VARIABLE.grid(row=1, column=1, sticky='NSEW')
LABEL_VARIABLE.grid_propagate(0)
#premiere classe 'creatrice' de fonction :
class panneau_inf_gauche(panneaux):
def __init__(self, parent):
panneaux.__init__(self, parent)
#creation du dictionnaire contenant toutes les fonctions, chaque fonction sert à créer un label qui sera griddé par l'assemblage de la classe panneaux :
self.dico_label={99:self.img_descriptif_init}
def img_descriptif_init(self):
descriptif_label=Tkinter.Label(self.parent, image=self.image_descriptif, borderwidth=0)
descriptif_label.image=self.image_descriptif
return descriptif_label
#seconde classe 'creatrice' de fonction :
class panneau_milieu(panneaux):
def __init__(self, parent):
panneaux.__init__(self, parent)
# creation du dictionnaire de fonctions :
self.dico_label={0:self.presentation}
#fonction créant le label :
def presentation(self):
fond1=Tkinter.Label(self.parent, image=self.image_variable, borderwidth=0)
fond1.image=self.image_variable
fond1.grid_propagate(0)
label_var=Tkinter.Label(fond1, bg='lightgray', width=75, height=30, relief='sunken', text='', takefocus=1)
label_var.grid()
label_var.grid_propagate(0)
var=Tkinter.Label(label_var, font = 'Arial 12' , text='Hello ! Blabla Bla ! \n ...', bg='lightgray')
var.grid(row=1, column=0)
return fond1
if __name__ == "__main__":
app=Tkinter.Tk()
descriptif=panneau_inf_gauche(app)
variable=panneau_milieu(app)
panneaux(app).assemblage(descriptif, 99, variable, 0)
app.mainloop() |
Partager