Cette classe est utilisée pour affecter une liste de valeurs à un mot-clé.
"""
def __init__(self,panel,item,appli,titre="",texte="",cardinal=1):
- Fenetre.__init__(self,appli,titre=titre,texte=texte,width = 30,height=20)
- #Fenetre.__init__(self,appli,titre=titre,texte=texte)
- #self.frame_boutons.place_forget()
- #self.frame_texte.place_forget()
- #self.frame_texte.place(relx=0,rely=0,relwidth=1,relheight=0.8)
- #self.frame_boutons.place(relheight=0.2,relx=0,rely=0.8,relwidth=1.)
+ Fenetre.__init__(self,appli,titre=titre,texte=texte)
+ self.frame_boutons.place_forget()
+ self.frame_texte.place_forget()
+ self.frame_texte.place(relx=0,rely=0,relwidth=1,relheight=0.8)
+ self.frame_boutons.place(relheight=0.2,relx=0,rely=0.8,relwidth=1.)
self.cardinal=cardinal
- #self.fenetre.configure(width = 320,height=400)
+ self.fenetre.configure(width = 320,height=400)
centerwindow(self.fenetre)
self.panel = panel
self.item = item
selectioncommand = self.choose_separateur,
scrolledlist_items = l_separateurs_autorises)
self.choix_sep.component('entry').configure(width=6)
- #self.choix_sep.place(relx=0.01,rely=0.5,anchor='w')
- self.choix_sep.pack(side='left',padx=5, pady=5)
+ self.choix_sep.place(relx=0.01,rely=0.5,anchor='w')
self.choix_sep.selectitem(self.separateur)
# Replacement
- #self.but_quit.place_forget()
- #self.but_save.place_forget()
- self.but_quit.pack_forget()
- self.but_save.pack_forget()
+ self.but_quit.place_forget()
+ self.but_save.place_forget()
self.but_all = Button(self.frame_boutons,text = "Tout Sélectionner", command=self.tout)
- #self.but_save.place(relx=0.6,rely=0.6,anchor='center')
- #self.but_quit.place(relx=0.8,rely=0.6,anchor='center')
- #self.but_all.place(relx=0.7,rely=0.2,anchor='center')
- self.but_save.pack(side='left',padx=5, pady=5)
- self.but_quit.pack(side='right',padx=5, pady=5)
- self.but_all.pack(side='left',padx=5, pady=5)
+ self.but_save.place(relx=0.6,rely=0.6,anchor='center')
+ self.but_quit.place(relx=0.8,rely=0.6,anchor='center')
+ self.but_all.place(relx=0.7,rely=0.2,anchor='center')
self.choose_separateur('espace')
self.page = page
self.liste = liste
self.dico_labels={}
+ self.dico_mots={}
self.nBlabel = 0
self.dico_place={}
+ self.dico_mots={}
self.selection = None
self.liste_commandes = liste_commandes
self.liste_marques = liste_marques
fg = 'black',bg = 'gray95',justify = 'left')
self.dico_labels[mot]=label
self.dico_place[mot]=self.nBlabel
+ self.dico_mots[label]=mot
self.nBlabel=self.nBlabel+1
liste_labels.append(label)
self.MCbox.window_create(END,
if commande and mot : commande(mot)
def cherche_selected_item(self):
- index=self.MCbox.index(self.selection[1])
- lign,col=map(int,string.split(index,'.'))
+ try :
+ index=self.MCbox.index(self.selection[1])
+ lign,col=map(int,string.split(index,'.'))
+ except :
+ label=self.dico_labels[self.arg_selected]
+ mot=self.dico_mots[label]
+ lign=self.dico_place[mot]+1
return lign
def remove_selected_item(self):
try :
index=self.MCbox.index(self.selection[1])
+ lign,col=map(int,string.split(index,'.'))
except :
- index=self.MCbox.index(self.dico_labels[self.arg_selected] )
- lign,col=map(int,string.split(index,'.'))
+ label=self.dico_labels[self.arg_selected]
+ mot=self.dico_mots[label]
+ lign=self.dico_place[mot]+1
del self.liste[lign-1]
self.affiche_liste()
Cette classe est utilisée pour afficher une liste de commandes classées par
groupes. L'utilisateur peut réaliser des actions de selection
qui déclenchent des actions spécifiées par les bindings contenus dans liste_commandes
-
- Exemple de binding::
-
+ Exemple de binding:
liste_commandes = (("<Enter>",self.selectCmd),
("<Leave>",self.deselectCmd),
("<Double-Button-1>",self.defCmd))
-
Il s'agit d'une liste de doublets dont le premier element est un evenement et le
deuxieme un callback a appeler sur l'evenement en question.
def affiche_liste(self):
""" Affiche la liste dans la fenêtre"""
liste_labels=[]
+ self.dico_mots={}
self.MCbox.config(state=NORMAL)
self.MCbox.delete(1.0,END)
for grp in self.liste_groupes:
fg = 'black',bg = 'gray95',justify = 'left')
# On stocke la relation entre le nom de la commande et le label
self.dico_labels[cmd]=label
+ self.dico_mots[label]=cmd
self.MCbox.window_create(END,
window=label,
stretch = 1)