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 :
j'ai un retour erreur :
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'
je n'arrive pas a cerner le problème.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'
voici ma class :
Si quelqu'un pouvait m'eclairer ca serait cool.
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
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
Partager