Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Petit problème avec "return" [ Archives / Au secours !!! ] (Uims)
|
Petit problème avec "return"
le 01/10/2005 13:32:50

Uims
|
Bonjour,
Je suis entrain de faire un annuaire en python (avec Tk), mais j'ai un
petit problème avec return dans la fonction "loc", j'aimerai que la
valeur de "entr9" puisse etre utiliser dans la fonction "save"...
#debut
from Tkinter import *
fen1 = Tk()
fen1.title("Antalga v.1.0")
def hg():
print 'default'
def fen4show():
fen4 = Tk()
fen4.title('A propos')
text10 = Label(fen4, text='Antalga à été creer par
Uims, language Phyton v.2.4, version disponible à partir du site
uims01.ifrance.com.')
boot3 = Button(fen4, text='Licence', command = fenlicenceshow)
text10.grid(row =1)
boot3.grid(row =2)
def fenlicenceshow():
fen5 = Tk()
fen5.title('License GNU')
textli = Label(fen5, text='Copyright Uims
2005,"antalga" est un terme sous copyright, distribution et copie
autorisé,toute modification du programme, totale ou partielle est
interdite.')
textli.pack()
def loc():
fen3 = Tk()
textb = Label(fen3, text='ATTENTION SI LE FICHIER EXISTE DEJA SONT CONTENU SERA EFFACER!', fg ='red')
textc = Label(fen3, text='Entrez le nom du fichier (suivi de .dat comme extension):')
textb.grid(row =3)
entr9 = Entry(fen3)
textc.grid(row =1)
entr9.grid(row =2)
boot2 = Button(fen3, text='Sauvegarder!', command = save)
boot2.grid(row =4)
return entr9
def save(entr9):
fic = open(entr9, 'a')
fic.write(str(text1))
fic.write(str(text2))
fic.write(str(text3))
fic.write(str(text4))
fic.write(str(text5))
fic.write(str(text6))
fic.write(str(text7))
fic.write(str(text8))
fen2 = Tk()
fen2.title('Complete')
texta = Label(fen2, text='Données sauvegardées!')
texta.pack()
fen2.mainloop()
fic.close()
menubar = Menu(fen1)
fichiermenu = Menu(menubar, tearoff=0)
fichiermenu.add_command(label='Open', command=hg)
fichiermenu.add_command(label='Save', command=hg)
fichiermenu.add_separator()
fichiermenu.add_command(label='Exit', command=fen1.quit)
menubar.add_cascade(label='Fichier', menu=fichiermenu)
pro = Menu(menubar, tearoff=0)
pro.add_command(label='A propos', command=fen4show)
menubar.add_cascade(label='A propos', menu=pro)
fen1.config(menu=menubar)
text1 = Label(fen1, text='Nom:')
text2 = Label(fen1, text='Prénom:')
text3 = Label(fen1, text='Addresse:')
text4 = Label(fen1, text='Ville:')
text5 = Label(fen1, text='Code postal:')
text6 = Label(fen1, text='Téléphone:')
text7 = Label(fen1, text='E-mail:')
text8 = Label(fen1, text='Creer par Uims, sous licence GNU')
entr1 = Entry(fen1)
entr2 = Entry(fen1)
entr3 = Entry(fen1)
entr4 = Entry(fen1)
entr5 = Entry(fen1)
entr6 = Entry(fen1)
entr7 = Entry(fen1)
boot1 = Button(fen1, text='Sauvegarder', command = loc)
text1.grid(row =0, sticky =W)
text2.grid(row =1, sticky =W)
text3.grid(row =2, sticky =W)
text4.grid(row =3, sticky =W)
text5.grid(row =4, sticky =W)
text6.grid(row =5, sticky =W)
text7.grid(row =6, sticky =W)
text8.grid(row =8, sticky =W)
entr1.grid(row =0, column =1)
entr2.grid(row =1, column =1)
entr3.grid(row =2, column =1)
entr4.grid(row =3, column =1)
entr5.grid(row =4, column =1)
entr6.grid(row =5, column =1)
entr7.grid(row =6, column =1)
boot1.grid(row =7, column =0)
fen1.mainloop()
#fin
Merci d'avance  Uims
|
|
|
|
Re : Petit problème avec "return"
le 02/10/2005 20:18:36

Bl0tCh
|
return save(entr9) a la place de return entr9 mais je me demande vraiment si c ca que tu veux savoir paske je vois pas ou est la diffficulte :s
|
|
|
|
Re : Petit problème avec "return"
le 02/10/2005 20:58:33

Uims
|
Merci mais il ya une erreur qui a fait son apparition J'ai ameliorer le programme:
#----------- Importation de la librairie Tkinter --------- from Tkinter import *
#----------- Fenetre principale ------------- fen1 = Tk() fen1.title("Antalga v.1.0") #----------- Definition des variables ------- def hg(): print 'default' #---------- Variables vides -------- def var1(): print"" def var2(): print"" def var3(): print"" def var4(): print"" def var5(): print"" def var6(): print"" def var7(): print""
def fen4show(): fen4 = Tk() fen4.title('A propos') text10 = Label(fen4, text='Antalga à été creer par Uims, language Phyton v.2.4, version disponible à partir du site uims01.ifrance.com.') boot3 = Button(fen4, text='Licence', command = fenlicenceshow) text10.grid(row =1) boot3.grid(row =2) def fenlicenceshow(): fen5 = Tk() fen5.title('License') textli = Label(fen5, text='Copyright Uims 2005,"antalga" est un terme sous copyright, distribution et copie autorisé,toute modification du programme, totale ou partielle est interdite.') textli.pack() def new(): var1.set('') var2.set('') var3.set('') var4.set('') var5.set('') var6.set('') var7.set('') def loc(): fen3 = Tk() textb = Label(fen3, text='ATTENTION SI LE FICHIER EXISTE DEJA SONT CONTENU SERA EFFACER!', fg ='red') textc = Label(fen3, text='Entrez le nom du fichier (suivi de .dat comme extension):') textb.grid(row =3) entr9 = Entry(fen3) textc.grid(row =1) entr9.grid(row =2) boot2 = Button(fen3, text='Sauvegarder!', command = save) boot2.grid(row =4) return save(entr9) def save(entr9): fic = open(entr9, 'a') fic.write(var1) fic.write(var2) fic.write(var3) fic.write(var4) fic.write(var5) fic.write(var6) fic.write(var7) fen2 = Tk() fen2.title('Complete') texta = Label(fen2, text='Données sauvegardées!') texta.pack() fen2.mainloop() fic.close() def helpf(): fen6 = Tk() textd = Label(fen6, text='Ajouter un client: Remplissez les cases correspondantes, puis appuyer sur le bouton sauvegarder. Lire les consignes puis remplir le nom du client,appuyer sur le bouton.') texte = Label(fen6, text='Ouvrir un client: Dans le menu Fichier cliquer sur Open, puis selectionner votre client.') textd.grid(row =0) texte.grid(row =1) fen6.mainloop() #------------- Definition des elements de la fenetre -----------
#------------- Menu deroulant (menus "fichier" et "A propos") -- menubar = Menu(fen1) fichiermenu = Menu(menubar, tearoff=0) fichiermenu.add_command(label='New', command=new) fichiermenu.add_command(label='Open', command=hg) fichiermenu.add_command(label='Save', command=loc) fichiermenu.add_separator() fichiermenu.add_command(label='Exit', command=fen1.quit) menubar.add_cascade(label='Fichier', menu=fichiermenu) apropos = Menu(menubar, tearoff=0) apropos.add_command(label='A propos', command=fen4show) menubar.add_cascade(label='A propos', menu=apropos) helpm = Menu(menubar, tearoff=0) helpm.add_command(label='Comment ca marche?', command=helpf) menubar.add_cascade(label='Aide', menu=helpm) fen1.config(menu=menubar)
#------------- Textes --------------
text1 = Label(fen1, text='Nom:') text2 = Label(fen1, text='Prénom:') text3 = Label(fen1, text='Addresse:') text4 = Label(fen1, text='Ville:') text5 = Label(fen1, text='Code postal:') text6 = Label(fen1, text='Téléphone:') text7 = Label(fen1, text='E-mail:') text8 = Label(fen1, text='Creer par Uims')
#------------ Zones de saise de textes ------- var1 = StringVar() entr1 = Entry(fen1, textvariable=var1) var2 = StringVar() entr2 = Entry(fen1, textvariable=var2) var3 = StringVar() entr3 = Entry(fen1, textvariable=var3) var4 = StringVar() entr4 = Entry(fen1, textvariable=var4) var5 = StringVar() entr5 = Entry(fen1, textvariable=var5) var6 = StringVar() entr6 = Entry(fen1, textvariable=var6) var7 = StringVar() entr7 = Entry(fen1, textvariable=var7)
#----------- Boutons ------------ boot1 = Button(fen1, text='Sauvegarder le client', command = loc)
#---------- Position des élements de la fenetre -----------
#---------- Textes -----------
text1.grid(row =0, sticky =W) text2.grid(row =1, sticky =W) text3.grid(row =2, sticky =W) text4.grid(row =3, sticky =W) text5.grid(row =4, sticky =W) text6.grid(row =5, sticky =W) text7.grid(row =6, sticky =W) text8.grid(row =8, sticky =W)
#--------- Zones de textes -------
entr1.grid(row =0, column =1) entr2.grid(row =1, column =1) entr3.grid(row =2, column =1) entr4.grid(row =3, column =1) entr5.grid(row =4, column =1) entr6.grid(row =5, column =1) entr7.grid(row =6, column =1)
#--------- Boutons ----------
boot1.grid(row =7)
#--------- Execution de la fenetre principale, puis destruction ---------- fen1.mainloop() fen1.destroy() #--------fin
Mais cete erreur apparait:
Exception in Tkinter callback Traceback (most recent call last): File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__ return self.func(*args) File "C:\Python24\Antalga v.1.0.py", line 56, in loc return save(entr9) File "C:\Python24\Antalga v.1.0.py", line 58, in save fic = open(entr9, 'a') TypeError: coercing to Unicode: need string or buffer, instance found
Vraiment ca devient hard... Merci Uims
|
|
|
|
Re : Petit problème avec "return"
le 03/10/2005 17:10:19

Bl0tCh
|
tu est sur que entr9 correspond à une chaine de caracteres qui indique lemplacement d'un fichier ?
paske là j'ai des doutes sur le fait que ce soit effectivement un string : entr9.grid(row =2), un string na pas de methode grid :p
je ne connais pas tkinter mais cet objet entr9 doit bien avoir une fonction qui permet de recuperer la valeur entree sous forme de strinf cette fois :p
|
|
|
|
Re : Petit problème avec "return"
le 03/10/2005 17:42:37

Uims
|
A vrai dire la valeur entr9 contient le nom du fichier et de son extension. La valeur donné dans loc est utiliser dans save pour definir le fichier. Hors je n'arrive pas a que entr9 puisse etre utiliser dans save (apres voir été remplis dans "loc")...
Merci BlOtCh pour ton aide.
Uims
|
|
|
|
Re : Petit problème avec "return"
le 03/10/2005 18:44:07

Bl0tCh
|
javais pas regarder ton code ^^
# -*- coding: cp1252 -*- from Tkinter import *
#----------- Fenetre principale ------------- fen1 = Tk() fen1.title("Antalga v.1.0") #----------- Definition des variables ------- def hg(): print 'default' #---------- Variables vides -------- def var1(): print"" def var2(): print"" def var3(): print"" def var4(): print"" def var5(): print"" def var6(): print"" def var7(): print""
def fen4show(): fen4 = Tk() fen4.title('A propos') text10 = Label(fen4, text='Antalga à été creer par Uims, language Phyton v.2.4, version disponible à partir du site uims01.ifrance.com.') boot3 = Button(fen4, text='Licence', command = fenlicenceshow) text10.grid(row =1) boot3.grid(row =2) def fenlicenceshow(): fen5 = Tk() fen5.title('License') textli = Label(fen5, text='Copyright Uims 2005,"antalga" est un terme sous copyright, distribution et copie autorisé,toute modification du programme, totale ou partielle est interdite.') textli.pack() def new(): var1.set('') var2.set('') var3.set('') var4.set('') var5.set('') var6.set('') var7.set('') def loc(): fen3 = Tk() textb = Label(fen3, text='ATTENTION SI LE FICHIER EXISTE DEJA SONT CONTENU SERA EFFACER!', fg ='red') textc = Label(fen3, text='Entrez le nom du fichier (suivi de .dat comme extension):') textb.grid(row =3) global entr9 entr9 = Entry(fen3, text='test') textc.grid(row =1) entr9.grid(row =2) boot2 = Button(fen3, text='Sauvegarder!', command = save) boot2.grid(row =4) def save(): fic = open(entr9.get(), 'a') fic.write(var1) fic.write(var2) fic.write(var3) fic.write(var4) fic.write(var5) fic.write(var6) fic.write(var7) fen2 = Tk() fen2.title('Complete') texta = Label(fen2, text='Données sauvegardées!') texta.pack() fen2.mainloop() fic.close() def helpf(): fen6 = Tk() textd = Label(fen6, text='Ajouter un client: Remplissez les cases correspondantes, puis appuyer sur le bouton sauvegarder. Lire les consignes puis remplir le nom du client,appuyer sur le bouton.') texte = Label(fen6, text='Ouvrir un client: Dans le menu Fichier cliquer sur Open, puis selectionner votre client.') textd.grid(row =0) texte.grid(row =1) fen6.mainloop() #------------- Definition des elements de la fenetre -----------
#------------- Menu deroulant (menus "fichier" et "A propos") -- menubar = Menu(fen1) fichiermenu = Menu(menubar, tearoff=0) fichiermenu.add_command(label='New', command=new) fichiermenu.add_command(label='Open', command=hg) fichiermenu.add_command(label='Save', command=loc) fichiermenu.add_separator() fichiermenu.add_command(label='Exit', command=fen1.quit) menubar.add_cascade(label='Fichier', menu=fichiermenu) apropos = Menu(menubar, tearoff=0) apropos.add_command(label='A propos', command=fen4show) menubar.add_cascade(label='A propos', menu=apropos) helpm = Menu(menubar, tearoff=0) helpm.add_command(label='Comment ca marche?', command=helpf) menubar.add_cascade(label='Aide', menu=helpm) fen1.config(menu=menubar)
#------------- Textes --------------
text1 = Label(fen1, text='Nom:') text2 = Label(fen1, text='Prénom:') text3 = Label(fen1, text='Addresse:') text4 = Label(fen1, text='Ville:') text5 = Label(fen1, text='Code postal:') text6 = Label(fen1, text='Téléphone:') text7 = Label(fen1, text='E-mail:') text8 = Label(fen1, text='Creer par Uims')
#------------ Zones de saise de textes ------- var1 = StringVar() entr1 = Entry(fen1, textvariable=var1) var2 = StringVar() entr2 = Entry(fen1, textvariable=var2) var3 = StringVar() entr3 = Entry(fen1, textvariable=var3) var4 = StringVar() entr4 = Entry(fen1, textvariable=var4) var5 = StringVar() entr5 = Entry(fen1, textvariable=var5) var6 = StringVar() entr6 = Entry(fen1, textvariable=var6) var7 = StringVar() entr7 = Entry(fen1, textvariable=var7)
#----------- Boutons ------------ boot1 = Button(fen1, text='Sauvegarder le client', command = loc)
#---------- Position des élements de la fenetre -----------
#---------- Textes -----------
text1.grid(row =0, sticky =W) text2.grid(row =1, sticky =W) text3.grid(row =2, sticky =W) text4.grid(row =3, sticky =W) text5.grid(row =4, sticky =W) text6.grid(row =5, sticky =W) text7.grid(row =6, sticky =W) text8.grid(row =8, sticky =W)
#--------- Zones de textes -------
entr1.grid(row =0, column =1) entr2.grid(row =1, column =1) entr3.grid(row =2, column =1) entr4.grid(row =3, column =1) entr5.grid(row =4, column =1) entr6.grid(row =5, column =1) entr7.grid(row =6, column =1)
#--------- Boutons ----------
boot1.grid(row =7)
#--------- Execution de la fenetre principale, puis destruction ---------- fen1.mainloop() fen1.destroy() #--------fin
Voila par contre ta fonction de sauvegarde marche pas (avec tes var truc). c moche vu que c pas sous forme de classe fo passser par global entr9 vu qu'on peut pas passer de param à save a travers Button. Ce que tu fesais c'etait que ds loc tu creer la fenetre tassocier au bouton save mais apres tu appelais la fonction save alors que le gars avait pas cliquer sur le bouton et tessayer douvrir un objet (fo faire entr9.get() pour avoir la valeur du champ de texte), donc ça marchais pas ^^
|
|
|
|
Re : Petit problème avec "return"
le 03/10/2005 20:55:05

Uims
|
Oki, mais toujours ces mysterieuses erreurs:
"save" puis je rentre 'hello.dat'
Exception in Tkinter callback Traceback (most recent call last): File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__ return self.func(*args) File "G:\Antalga v.1.0.py", line 56, in loc return save(entr9) TypeError: save() takes no arguments (1 given) Exception in Tkinter callback Traceback (most recent call last): File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__ return self.func(*args) File "G:\Antalga v.1.0.py", line 62, in save fic.write(var1) TypeError: argument 1 must be string or read-only character buffer, not instance
Dsl je suis debutant et la je suis largué!
J'admire ta patience!
Voila le code avec ma nouvelle interface :
#----------- Importation de la librairie Tkinter --------- from Tkinter import *
#----------- Fenetre principale ------------- fen1 = Tk() fen1.title("Antalga v.1.0") #----------- Definition des variables -------
#---------- Variables vides -------- def var1(): print"" def var2(): print"" def var3(): print"" def var4(): print"" def var5(): print"" def var6(): print"" def var7(): print"" #----- variables ------------ def fen4show(): fen4 = Tk() fen4.title('A propos') text10 = Label(fen4, text='Antalga à été creer par Uims, language Phyton v.2.4, version disponible à partir du site uims01.ifrance.com.') boot3 = Button(fen4, text='Licence', command = fenlicenceshow) text10.grid(row =1) boot3.grid(row =2) def fenlicenceshow(): fen5 = Tk() fen5.title('License') textli = Label(fen5, text='Copyright Uims 2005,"antalga" et le logo "uimscorp.gif" sont sous copyright, distribution et copie autorisé,toute modification du programme, totale ou partielle est interdite.') textli.pack() def new(): var1.set('') var2.set('') var3.set('') var4.set('') var5.set('') var6.set('') var7.set('') def loc(): fen3 = Tk() textb = Label(fen3, text='ATTENTION SI LE FICHIER EXISTE DEJA SONT CONTENU SERA EFFACER!', fg ='red') textc = Label(fen3, text='Entrez le nom du fichier (suivi de .dat comme extension):') textb.grid(row =3) global entr9 entr9 = Entry(fen3, text='test') textc.grid(row =1) entr9.grid(row =2) boot2 = Button(fen3, text='Sauvegarder!', command = save) boot2.grid(row =4) return save(entr9) def openloc(): print'' def save(): fic = open(entr9.get(), 'a') fic.write(var1) fic.write(var2) fic.write(var3) fic.write(var4) fic.write(var5) fic.write(var6) fic.write(var7) fen2 = Tk() fen2.title('Complete') texta = Label(fen2, text='Données sauvegardées!') texta.pack() fen2.mainloop() fic.close() def helpf(): fen6 = Tk() textd = Label(fen6, text='Ajouter un client: Remplissez les cases correspondantes, puis appuyer sur le bouton sauvegarder. Lire les consignes puis remplir le nom du client,appuyer sur le bouton.') texte = Label(fen6, text='Ouvrir un client: Dans le menu Fichier cliquer sur Open, puis selectionner votre client.') textd.grid(row =0) texte.grid(row =1) fen6.mainloop() #------------- Definition des elements de la fenetre -----------
#------------- Menu deroulant (menus "fichier","A propos","Aide") ---- menubar = Menu(fen1) fichiermenu = Menu(menubar, tearoff=0) fichiermenu.add_command(label='New', command=new) fichiermenu.add_command(label='Open', command=openloc) fichiermenu.add_command(label='Save', command=loc) fichiermenu.add_separator() fichiermenu.add_command(label='Exit', command=fen1.quit) menubar.add_cascade(label='Fichier', menu=fichiermenu) apropos = Menu(menubar, tearoff=0) apropos.add_command(label='A propos', command=fen4show) menubar.add_cascade(label='A propos', menu=apropos) helpm = Menu(menubar, tearoff=0) helpm.add_command(label='Comment ca marche?', command=helpf) menubar.add_cascade(label='Aide', menu=helpm) fen1.config(menu=menubar)
#------------- Textes --------------
text1 = Label(fen1, text='Nom:') text2 = Label(fen1, text='Prénom:') text3 = Label(fen1, text='Addresse:') text4 = Label(fen1, text='Ville:') text5 = Label(fen1, text='Code postal:') text6 = Label(fen1, text='Téléphone:') text7 = Label(fen1, text='E-mail:')
#------------ Zones de saise de textes ------- var1 = StringVar() entr1 = Entry(fen1, textvariable=var1) var2 = StringVar() entr2 = Entry(fen1, textvariable=var2) var3 = StringVar() entr3 = Entry(fen1, textvariable=var3) var4 = StringVar() entr4 = Entry(fen1, textvariable=var4) var5 = StringVar() entr5 = Entry(fen1, textvariable=var5) var6 = StringVar() entr6 = Entry(fen1, textvariable=var6) var7 = StringVar() entr7 = Entry(fen1, textvariable=var7)
#----------- Canvas ------------ can1 = Canvas(fen1, width =160, height =180, bg = 'gray') photo = PhotoImage(file ='uimscorp.gif') item = can1.create_image(80, 90, image =photo) can1.grid(row =2, column =3, rowspan =3, padx =10, pady=5)
#----------- Boutons ------------ boot1 = Button(fen1, text='Sauvegarder', command = loc) bootr1 = Button(fen1, text='Ouvrir', command = openloc) bootr2 = Button(fen1, text='Nouveau/Effacer', command = new) bootr3 = Button(fen1, text='Quitter', command = fen1.quit)
#---------- Position des élements de la fenetre -----------
#---------- Textes -----------
text1.grid(row =0, sticky =W) text2.grid(row =1, sticky =W) text3.grid(row =2, sticky =W) text4.grid(row =3, sticky =W) text5.grid(row =4, sticky =W) text6.grid(row =5, sticky =W) text7.grid(row =6, sticky =W)
#--------- Zones de textes -------
entr1.grid(row =0, column =1) entr2.grid(row =1, column =1) entr3.grid(row =2, column =1) entr4.grid(row =3, column =1) entr5.grid(row =4, column =1) entr6.grid(row =5, column =1) entr7.grid(row =6, column =1)
#--------- Boutons ----------
boot1.grid(row =7, column =0) bootr1.grid(row =7, column =1) bootr2.grid(row =7, column =2) bootr3.grid(row =7, column =4)
#--------- Execution de la fenetre principale, puis destruction ---------- fen1.mainloop() fen1.destroy()
Uims
|
|
|
|
Re : Petit problème avec "return"
le 03/10/2005 21:27:54

Bl0tCh
|
je comprend pas bien ce que sont tes vars. Tu les declare en tant que fonction au debut et ensuite entant que StringVar :s Sachant qu'a la fin tu dois ecrire un string
|
|
|
|
Re : Petit problème avec "return"
le 04/10/2005 18:23:16

Uims
|
Sinon c'a me met une
Uims
|
|
|
|
Re : Petit problème avec "return"
le 06/10/2005 19:14:55

Uims
|
ca me met une erreur dsl Uims
|
|
|
Classé sous : label, text, grid, row, fen1
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | | 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 |
|
Téléchargements
Logiciels à télécharger sur le même thème :
|