[Python] Problemi con la Shell e wxpython

Daniele Varrazzo piro a develer.com
Ven 20 Nov 2009 15:37:12 CET


On Fri, 20 Nov 2009 15:10:16 +0100, Federico <jakals86 a tiscali.it> wrote:
> Salve a tutti, eccomi di nuovo con alcuni problemi. 
> 
> Faccio partire nella IDLE di python questo codice
> 
> from wxPython.wx import *
> 
> class MiaApp(wxApp):
>     def OnInit(self):
>         frame = wxFrame(None, -1, "Ciao mondo")
>         # viene mostrata la finestra
>         frame.Show(1)
>         # imposta la finestra principale
>         self.SetTopWindow(frame)
>         return 1
> 
> # crea un'istanza della classe MiaApp
> app = MiaApp(0)
> app.MainLoop()
> 
> Si blocca sia l'IDLE che la SHELL si blocca e devo terminare il processo
> come mai?Ho la versione 2.6.4. Ho provato ad utilizzare Eric4 e nella
> sua shell funziona benissimo. Qualcuno sa come risolvere questo problema

IDLE ha un suo reactor, basato su TK, che non è compatibile con quello di
WX. Nei framework reactor-driven (tutte le interfacce grafice, twisted e
probabilmente altri) può esserci un solo reactor alla volta, altrimenti si
bloccano l'un l'altro.

È strano che con Eric4 funzioni, visto che è basato su Qt. Forse ha delle
misure di compatibilità apposite (come twisted che può convivere con i
reactor delle interfacce grafiche), ma IDLE è meno raffinato.

È meglio usare il prompt python standard (o meglio ancora iPython) per
avviare i programmi WX, oppure cerca una IDE basata su WX (ma quando le
provai un po' di anni fa non mi piacevano).

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python