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 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
| #!/usr/bin/python
# -*- coding:Utf-8 -*-
import Tkinter
from PIL import Image, ImageTk
import Tix
class panneaux(Tkinter.Frame):
def __init__(self, parent):
Tkinter.Frame.__init__(self,parent, borderwidth=0, bg='pink')
self.image_variable=ImageTk.PhotoImage(Image.open('../images/variable.jpg'))
self.image_boutons=ImageTk.PhotoImage(Image.open('../images/boutons.jpg'))
self.parent=parent
def assemblage(self, coin_inf_d, clef_dico_inf_d, milieu, clef_dico_milieu):
coin_inf_d.dico_label[clef_dico_inf_d]()
coin_inf_d.frame.grid(row=2, column=1, sticky='NSEW')
milieu.dico_label[clef_dico_milieu]()
milieu.frame.grid(row=1, column=1, sticky='NSEW')
def add_widget(self,widget, parent, fond, ro, col, padxx, ipadxx, stick):
widget.grid(row=ro, column=col, padx=padxx, ipadx=ipadxx, sticky=stick)
nbcol,nbrow=parent.grid_size()
fond.grid_forget()
fond.grid(row=0,column=0,rowspan=nbrow,columnspan=nbcol)
class panneau_inf_droit(panneaux):
def __init__(self, parent,k, variable):
panneaux.__init__(self, parent)
self.frame=Tkinter.Frame(self.parent, borderwidth=0)
if k==None:
self.i=0
else:
self.i=k
self.dico_label={1:self.ensemble_boutons, 2:self.fin}
self.dico={0:[1], 1:[1], 2:[2]}
def ensemble_boutons(self):
self.frame.destroy()
self.frame=Tkinter.Frame(self.parent, borderwidth=0)
boutons_label=Tkinter.Label(self.frame, image=self.image_boutons, borderwidth=0)
boutons_label.image=self.image_boutons
frame_int=Tkinter.Frame(self.frame, borderwidth=0)
bouton_precedent=Tkinter.Button(self.frame, text='Pr\xe9c\xe9dent', command=self.gestion_precedent)
bouton_suivant=Tkinter.Button(self.frame, text='Suivant', command=self.gestion_suivant)
bouton_annuler=Tkinter.Button(self.frame, text='Annuler', command=self.parent.destroy)
self.add_widget(bouton_precedent,self.frame, boutons_label, 0, 0, 0, 3, '')
self.add_widget(bouton_suivant,self.frame, boutons_label, 0, 1, 0, 3, '')
self.add_widget(bouton_annuler,self.frame, boutons_label, 0, 2, 0, 3, '')
return
def fin(self):
self.frame.destroy()
self.frame=Tkinter.Frame(self.parent, borderwidth=0)
boutons_label=Tkinter.Label(self.frame, image=self.image_boutons, borderwidth=0)
boutons_label.image=self.image_boutons
frame_int=Tkinter.Frame(self.frame, borderwidth=0)
bouton_precedent=Tkinter.Button(self.frame, text='Pr\xe9c\xe9dent', command=self.gestion_precedent)
bouton_suivant=Tkinter.Button(self.frame, text='Suivant', command=self.gestion_suivant)
bouton_annuler=Tkinter.Button(self.frame, text='Terminer', command=self.parent.destroy)
self.add_widget(bouton_precedent,self.frame, boutons_label, 0, 0, 0, 3, '')
self.add_widget(bouton_suivant,self.frame, boutons_label, 0, 1, 0, 3, '')
self.add_widget(bouton_annuler,self.frame, boutons_label, 0, 2, 0, 3, '')
return
def gestion_suivant(self):
if self.i<2:
self.i = self.i + 1
liste_av=self.dico[self.i]
self.assemblage(self, liste_av[0], variable, self.i)
def gestion_precedent(self):
if self.i>0:
self.i = self.i - 1
liste_av=self.dico[self.i]
self.assemblage(self, liste_av[0], variable, self.i)
class panneau_milieu(panneaux):
def __init__(self, parent):
panneaux.__init__(self, parent)
self.frame=Tkinter.Frame(self.parent, borderwidth=0)
self.dico_label={0:self.panneau0, 1:self.panneau1, 2:self.fin}
def fin(self):
self.frame.destroy()
self.frame=Tkinter.Frame(self.parent, borderwidth=0)
milieu_label=Tkinter.Label(self.frame, image=self.image_variable, borderwidth=0)
milieu_label.image=self.image_variable
milieu_label.grid()
return
def panneau0(self):
self.frame.destroy()
self.frame=Tkinter.Frame(self.parent, borderwidth=0)
fond1=Tkinter.Label(self.frame, image=self.image_variable, borderwidth=0)
fond1.image=self.image_variable
label_var=Tkinter.Label(self.frame, bg='lightgray', width=75, height=30, relief='sunken', text='')
self.add_widget(label_var,self.frame, fond1, 0, 0, 0, 0, '')
label_var.grid_propagate(0)
frame_int=Tkinter.Frame(self.frame, borderwidth=0, bg='lightgray')
texte=Tkinter.Label(frame_int, text="Frame 0", bg='lightgray', wraplength=400)
texte.grid(row=0, sticky='N', pady=20)
self.add_widget(frame_int, self.frame, fond1, 0, 0, 0, 0, '')
return
def panneau1(self):
self.frame.destroy()
self.frame=Tkinter.Frame(self.parent, borderwidth=0)
fin=Tkinter.Label(self.frame, image=self.image_variable, borderwidth=0)
fin.image=self.image_variable
fin.grid_propagate(0)
label_var=Tkinter.Label(self.frame, bg='lightgray', width=75, height=30, relief='sunken')
self.add_widget(label_var, self.frame, fin, 0, 0, 0, 0, '')
label_var.grid_propagate(0)
frame_int=Tkinter.Frame(self.frame, borderwidth=0, bg='lightgray')
texte=Tkinter.Label(frame_int, text="Frame 1", bg='lightgray', wraplength=400)
texte.grid(row=0, sticky='N', pady=20)
self.add_widget(frame_int, self.frame, fin, 0, 0, 0, 0, '')
return
if __name__ == "__main__":
app = Tix.Tk()
app.resizable(False,False)
variable=panneau_milieu(app)
boutons=panneau_inf_droit(app,0, variable)
t=boutons.dico[boutons.i]
boutons.assemblage(boutons, t[0], variable, boutons.i)
app.mainloop() |