Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - Valore di ritorno da una funzione passata ad un widget
Forum - Python - Valore di ritorno da una funzione passata ad un widget

Avatar
peppino80 (Normal User)
Newbie


Messaggi: 2
Iscritto: 27/04/2016

Segnala al moderatore
Postato alle 11:17
Mercoledì, 27/04/2016
Buongiorno a tutti,

volevo sapere come riuscire ad avere il valore di ritorno di una qualsiasi funzione passata ad un widget. Nel mio caso specifico si tratta di un menu
che ti fa scegliere il nome del file che successivamente si dovrebbe aprire e leggere.
Tuttavia il percorso del file sembra essere vuoto,vi posto il codice sperando di ricevere il vostro aiuto:

Codice sorgente - presumibilmente Python

  1. from Tkinter import *  
  2. from tkFileDialog import *  
  3.  
  4. class App():    
  5.    
  6.     def __init__(self, root):
  7.         self.path=""
  8.         self.menubar = Menu(root)    
  9.         self.filemenu = Menu(self.menubar, tearoff=0)    
  10.         self.filemenu.add_command(label="Open",command=self.scegli)    
  11.         self.menubar.add_cascade(label="File", menu=self.filemenu)    
  12.         root.config(menu=self.menubar)
  13.  
  14.     def scegli(self):
  15.        
  16.         filename = askopenfilename(filetypes=[("Text files","*.txt")])
  17.         self.path=filename
  18.         return self.path
  19.  
  20.     def getpath(self):
  21.         print self.path
  22.  
  23.  
  24.        
  25. root=Tk()
  26. app=App(root)
  27. app.getpath()
  28. root.mainloop()



Grazie mille,buona giornata

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 13:06
Mercoledì, 27/04/2016
Ad occhio e croce dovrebbe essere corretto, però il tuo metodo scegli() può essere invocato solo dopo aver chiamato root.mainloop(), che è bloccante.
Prova ad aggiungere alla UI un alert o un textfield per vedere il valore di self.path, altrimenti metti un print in scegli() e controlla su stdout il valore.

PM Quote
Avatar
peppino80 (Normal User)
Newbie


Messaggi: 2
Iscritto: 27/04/2016

Segnala al moderatore
Postato alle 14:08
Mercoledì, 27/04/2016
Grazie per la risposta,

aggiungendo un print al metodo scegli il path del file viene stampato al video. Tuttavia a me servirebbe capire come salvare il percorso del file in una variabile che io possa usare successivamente.

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 19:55
Mercoledì, 27/04/2016
Testo quotato

Postato originariamente da peppino80:

Grazie per la risposta,

aggiungendo un print al metodo scegli il path del file viene stampato al video. Tuttavia a me servirebbe capire come salvare il percorso del file in una variabile che io possa usare successivamente.


La riga self.path=filename nel tuo codice fa esattamente questo.

PM Quote