bonsoir
voici le code d'une boite de dialogue qui doit normalement me retourner le nom du champs entry.
Mais quand je l'utilise dans un programme global, du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
new_canal=Nom_Fichier(titre='Nom du Canal',
            message='Veulliez saisir le nom du nouveau canal')
        filename=new_canal+'.cfg'
j'ai un retour erreur :
Error: 1
TypeError Exception in Tk callback
Function: <bound method Foto2Pack.new_canal of <__main__.Foto2Pack instance at 0x00AF4198>> (type: <type 'instancemethod'>)
Args: ()
Traceback (innermost last):
File "C:\Python24\lib\site-packages\Pmw\Pmw_1_2\lib\PmwBase.py", line 1747, in __call__
return apply(self.func, args)
File "C:\Documents and Settings\Benoit\Mes documents\Programmation\serv4pack_2\Gui_serv.py", line 696, in new_canal
filename=new_canal+'.cfg'
TypeError: unsupported operand type(s) for +: 'instance' and 'str'
je n'arrive pas a cerner le problème.
voici ma class :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
class Nom_Fichier:
 
    """ Boite de dialogue pouvant servir a récupérer un nom 
    entré par l'utilisateur.Vérifie la condition de champs nom nul avant de
    retourner la valeur au pro
gramme """
 
    def __init__(self,titre='titre',message='message'):
        gui=tk.Toplevel()
        gui.title(titre)
 
        tk.Label(gui,text=message,fg='blue',bg='white').grid(
            row=0,columnspan=2,sticky=tk.E+tk.W)
 
        self.entry=tk.Entry(gui,width=50)
        self.entry.grid(row=1,columnspan=2,padx=2,pady=5)
 
        tk.Button(gui,text='Valider',command=lambda guy=gui: self.valid(gui)).grid(row=2,column=0,
            sticky=tk.W+tk.E,padx=2,pady=5)
        tk.Button(gui,text='Annuler',command=gui.destroy).grid(row=2,column=1,
            sticky=tk.W+tk.E,padx=2,pady=5)
 
 
    def valid(self,guy):
        entry=self.entry.get()
        self.entry.delete(0,tk.END)
        if entry == '':
            tkMessageBox.showerror('ERREUR',
            'Entrez un nom valide, merci.\nUn nom différent de rien!')
        else:
            guy.destroy()
            return entry
Si quelqu'un pouvait m'eclairer ca serait cool.
merci

Edité par Guigui-: pense à utiliser des triples double-quote pour tes docstrings (ou bien évite qu'il y ait des apostrophes dedans parce que la coloration syntaxique ne le gère pas pour le moment. Merci