On Sun, Feb 27, 2011 at 09:20:00PM +0100, Marco Fochesato wrote:
...
> Problema:
> la finestra la prima volta che la chiamo, si comporta bene.
> Se la chiudo e la richiamo, si apre senza farmi vedere i widget
> (TextView) al suo interno.
> 
> Ho provato a fare il reload del modulo... allora la cosa funziona.. solo
> che al primo avvio la finestra appare doppia.. chiudo i due doppioni,
> richiamo e ne esce una sola. Giusta.


Il codice di un modulo viene eseguito solo una volta all'atto della sua
importazione. Se importi un modulo due volte (`import finestra; import
finestra`) i comportamenti sono differenti: nel primo caso i normali
passi vengono eseguiti (ricerca del modulo, traduzione in bytecode,
eseguzione del codice, ecc.) ed il modulo viene salvato in `sys.modules`,
nel secondo import il modulo viene trovato in `sys.modules` ed il codice
non viene eseguito.

Per testare questo comportamento prova ad eseguire il test allegato.

Senza vedere il codice è quasi un tirare ad indovinare, ma è possibile
che sia questo il tuo problema.

ciao
m.

-- 
In se stesso il toscano ha fiducia, pur senza orgoglio, ma negli uomini,
nella pianta uomo, no. In fondo, credo che disprezzi il genere umano,
tutti gli esseri umani, maschi e femmine. E non per la loro cattiveria,
(al toscano non fan paura i cattivi), ma per la loro stupidità. Degli
stupidi il toscano ha ribrezzo, perché non si sa mai che cosa possa
venir fuori da uno stupido. Guarda, dico, come il toscano cammina: e ti
avvedrai che cammina come se stesse sempre sulle sue, come uomo che sa,
per antica esperienza, che la cosa più aborrita al mondo è
l'intelligenza, e la più insidiata.
                -- Curzio Malaparte, Maledetti toscani
print __name__ + ": ciao, sono finestra"
print __name__ + ": import del modulo finestra"
import finestra
print __name__ + ": import del modulo finestra2"
import finestra2
print __name__ + ": ciao, sono finestra 2"
print __name__ + ": import del modulo finestra2"
import finestra2

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a