[Python] Ritorno Valore da classe

Eriol eriol a huine.org
Sab 11 Nov 2006 11:33:42 CET


Alle 10:34, sabato 11 novembre 2006, spa ha scritto:
>         def Conferma_risultato(self,widget):
>                 ............
>                 ..............
>                 .............    
>    
>                 if x = Y :
                     ^^^^^

Immagino sia x == Y

>                     self.FM_Glade.get_widget("FM_main_window").hide()
>                     return lista
>
>         
> come vedete dal listato soprastante  la classe inserimento carica
> un'interfaccia grafica, che ha un pulsante che richiama ad ogni
> pressione la funzione conferma, ad ogni pressione viene modificata una
> lista, e solo ad una determinata condizione (cioe' dopo un tot di
> pressioni dipendenti da altri fattori) chiude l'interfaccia e ritorna
> il valore della lista.

Uhm... non sono sicuro di aver compreso bene: l'utente si trova davanti un 
tasto 'Conferma' che durante le prime pressioni, finche` non si verifica 
una determinata condizione, non fa nulla di visibile? Immagino che tu 
stia usando qualcos'altro per dare un feedback all'utente, ma mi pare 
comunque poco usabile un'interfaccia del genere.

> fatto cio' pensavo che "lista_partite" assumesse il valore di uscita
> dal comando "return lista", ma logicamente cio' non e' vero, in quando
> per avere questo risultato avrei dovuto richiamare direttamente la
> funzione Conferma, ma non e' cio' che voglio, in quanto ho bisogno di
> quella lista solo dopo diverse pressioni del pulsante.

Beh, ma hai self.lista_partite: all'interno della classe 
INSERIMENTO_RISULTATI puoi accedervi tranquillamente.
Tra questa window e l'applicazione principale lo puoi condividere.

> Sono quindi a chiedervi:  come si fa ad avere il risultato "return
> lista"  nel programma principale senza che vada avanti per i fatti
> suoi? praticamenti dovrei dirgli : "Aspetta che INSERIMENTO_RISULTATI
> abbia finito il suo lavoro e ti ritorni un valore"

Senza che vada avanti il programma principale? Avanti in cosa? Sta 
processando qualcosa mentre viene richiamata la window di 'Inserimento 
risultati'?
Potresti dare un set_modal(True) alla window d'inserimento risultati in 
modo tale da limitare l'interazione dell'utente con quella window finche` 
non ha finito, ma non so se sia questo che a te interessa.

Non sono sicuro, comunque, di aver compreso bene quello che tu voglia 
fare.

-- 
 Eriol - *p = NULL; - EIBTI 
 GPG Key ID 297BE0CA


Maggiori informazioni sulla lista Python