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
|
from tkinter import *
from tkinter.messagebox import * # Appel du sous-module boîtes de messages showinfo
######################################
######### Commandes du Menu ##########
######################################
def Enregistrer(): # Fonction de l'appel command=du même nom
showinfo("Confirmation", "Commande Enregistrer OK!") #test fonction avec une boite message info
def Enregistrersous(): # Fonction de l'appel command=du même nom
showinfo("Confirmation", "Commande Enregistrer sous OK!") #test fonction avec une boite message info
def Apropos(): # Fonction de l'appel command=du même nom
#nb=len(LisNom) #test fonction avec une boite message info
showinfo("A PROPOS", "Gestion de liste simple, coding: utf-8, D A-B, 12/03/2015") #test fonction avec une boite message info
def TrilistAZ(): ##### TRI LA LISTE DE CROISSANT
temp_list = list(LisNom.get(0, END))#Liste temporaire = Liste
temp_list.sort(key=str.lower)#tri dans l'ordre alphabétique
LisNom.delete(0, END)#Efface la liste"
for item in temp_list:#prend toutes les valeurs de la liste temporaire
LisNom.insert(END, item)#copie dans la liste en partant de la fin
def TrilistZA(): ##### TRI LA LISTE DECROISSANT
temp_list = list(LisNom.get(0, END))#Liste temporaire = Liste
temp_list.sort(key=str.lower)#Ordonne la liste temporaire
LisNom.delete(0, END)#Efface la liste"
for item in temp_list:#prend toutes les valeurs de la liste temporaire
LisNom.insert(0, item)#copie dans la liste en partant du début
def DelListe():##### EFFACE LA LISTE
LisNom.delete(0, END)#Efface toutes les valeurs de la Liste
##########################################
### COMMANDES FONCTIONS ###
##########################################
def addEntry () : ##### AJOUTE À LA LISTE LA VARIABLE SAISIE DANS LE CHAMP ENTRÉE
LisNom.insert(0, ChpNom.get())#colle la variable entrée au début de la liste
VarNom.set("")#vide la variable entrée
def DelIndex(): ##### EFFACE LA SÉLECTION EN COURS DANS LA LISTE
try:
index = LisNom.curselection()#calcule l'index de la selection en cours dans la liste
LisNom.delete(index)#supprime la sélection correspondante
except IndexError:
pass
def Modifier(): ##### DÉPLACE LA SÉLECTION EN COURS DANS LA LISTE VERS SAISIE DANS LE CHAMP ENTRÉE
index = LisNom.curselection() #calcule l'index de la selection en cours dans la liste
ChpModif = LisNom.get(index) #affecte un nom à l'index correspondant
ChpNom.delete(0, 100) #supprime tous les cractères du Champ de saisie"
ChpNom.insert(0, ChpModif)#copie la variable correspondante dans
DelIndex() #efface la variable de la liste
##########################################
### MISE EN PAGE PRNCIPALE ###
##########################################
W1 = Tk() #Fenêtre principale
W1.title('LISTE DES PARTICIPANTS') #Titre
W1['bg']="#fcfcdc" # Couleur de fond
Zon1W1 = Frame(W1) #Zone1 de mise en page
Zon1W1.pack() #type de mise page zone1
##################################
######### Barre de Menu ##########
##################################
menubar = Menu(W1)
W1.config(menu=menubar)
menu1 = Menu(menubar, tearoff=0)
#menu1.add_command(label="Enregistrer", command=Enregistrer)
#menu1.add_command(label="Enregistrer sous", command=Enregistrersous)
menu1.add_separator()
menu1.add_command(label="Quitter", command=W1.quit)
menubar.add_cascade(label="Sauvegarder", menu=menu1)
menu2 = Menu(menubar, tearoff=0)
menu2.add_command(label="Vider la liste", command=DelListe)
menu2.add_command(label="Trier ordre croissant", command=TrilistAZ)
menu2.add_command(label="Trier ordre décroissant", command=TrilistZA)
menubar.add_cascade(label="Organiser", menu=menu2)
menu3 = Menu(menubar, tearoff=0)
menu3.add_command(label="A propos", command=Apropos)
menubar.add_cascade(label="Aide", menu=menu3)
##########################################
### CDES FONCTIONS ###
##########################################
TitChpNom = Label(Zon1W1, text = 'Nom : ', anchor= E, width=20) # Titre du champ de saisie NOM
VarNom= StringVar() # Variable saisie de type texte
ChpNom = Entry(Zon1W1, textvariable= VarNom, width=70, bg ='#fbfbec', fg='blue')# Champ de saisie Evènement
b1 = Button(Zon1W1,text="Ajouter à la liste", command=addEntry)
b2 = Button(Zon1W1,text="Supprimer la sélection",command=DelIndex)
b3 = Button(Zon1W1,text="Modifier la sélection",command=Modifier)
ScrListNom = Scrollbar(Zon1W1) #Barre de défilement liste
ScrListNom.grid(column=2,row=3,sticky= 'WNS') #Position barre de défilement
LisNom = Listbox(Zon1W1, yscrollcommand=ScrListNom.set, width=70, bg ='#fbfbec', fg='blue', height=10)# Liste
LisNom.grid(column=1,row=3,sticky= 'W') # Position de la liste
ScrListNom.config(command=LisNom.yview) # Barre de défilement liste verticale
##########################################
### MISE EN PAGE CDES FONCTIONS ###
##########################################
Spa1 = Label(Zon1W1).grid(row=0) #Espace1 saut de ligne
Spa2 = Label(Zon1W1).grid(row=2) #Espace2 saut de ligne
Spa3 = Label(Zon1W1).grid(row=5) #Espace2 saut de ligne
TitChpNom.grid(column=0,row=1) #Position du Label
ChpNom.grid(column=1,row=1,sticky= 'W',columnspan=3) #Position du champ de saisie
b1.grid(column=2,row=1,padx= 20, sticky= 'W') # Position bouton
b2.grid(column=1,row=4,sticky= 'E') # Position bouton
b3.grid(column=1,row=4,sticky= 'W') # Position bouton
W1.mainloop() |
Partager