| 12
 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
 
 | import Tkinter as tk
import tkMessageBox
 
class nom_fichier(tk.Toplevel):
    def __init__(self, parent,titre='titre',message='message'):
        tk.Toplevel.__init__(self, parent)
        self.title=titre
        self.transient(parent)  #pour n'avoir qu'une icone dans la barre des tâches
        self.grab_set() #L'utilisateur n'a plus accès à la fenetre parente
        tk.Label(self,text=message,fg='blue',bg='white').grid(
            row=0,columnspan=2,sticky=tk.E+tk.W)
        self.entry=tk.Entry(self,width=50)
        self.entry.grid(row=1,columnspan=2,padx=2,pady=5)
        tk.Button(self,text='Valider',command=self.valider).grid(row=2,column=0,
            sticky=tk.W+tk.E,padx=2,pady=5)
        tk.Button(self,text='Annuler',command=self.destroy).grid(row=2,column=1,
            sticky=tk.W+tk.E,padx=2,pady=5)
        self.bind('<Return>',self.valider)
        self.bind('<Escape>',self.quitter)
        self.filename=''
    def valider(self,event=None):
        if not self.valid():
            return
        self.sortie()
        self.destroy()
    def valid(self):
        self.filename=self.entry.get()
        self.entry.delete(0,tk.END)
        if self.filename == '':
            tkMessageBox.showerror('ERREUR',
            'Entrez un nom valide, merci.\nUn nom différent de rien!')
        else:
            return 1
    def sortie(self):
        return self.filename
    def quitter(self,event=None):
        self.destroy()
if __name__=='__main__':
    root=tk.Tk()
    new_canal=nom_fichier(root,titre='Nom du Canal',
            message='Veulliez saisir le nom du nouveau canal')
    root.wait_window(new_canal) #Attends que new_canal soit fermé (plus logique ici ?)
    filename=new_canal.sortie()+'.cfg'
    print filename | 
Partager