2011-05-12 3 views
0

Cette question est très similaire à celle que j'ai récemment demandé: Python threading- returning control to the terminal while keeping a frame open sauf que je voudrais savoir comment utiliser interactivement iPython avec wxPython.Le support iPython wx?

Par exemple, je voudrais ce petit script pour rendre le contrôle à la borne après son ouverture un cadre:

from wxPython.wx import * 

class MyApp(wxApp): 
    def OnInit(self): 
     frame = wxFrame(NULL, -1, "Hello from wxPython") 
     frame.Show(true) 
     self.SetTopWindow(frame) 
     return true 

app = MyApp(0) 
app.MainLoop() 

En utilisant « ipython -pylab » fonctionne à merveille avec plt.show() mais ne retourne pas le contrôle au terminal avec frame.Show (True). Je comprends que iPython 0.11 aura une interface magique pour cela, mais qu'est-ce que les gens utilisent pour avoir une session interactive avec wxPython en attendant?

Merci! --Erin

+0

Avez-vous essayé les options de ligne de commande '-wthread' et' -wxversion' pour IPython? –

+0

Oui, j'ai. Ni retour contrôle au terminal dans cet exemple. –

Répondre

0

Quelques modifications au script nécessaire à effectuer:

import wx 

class MyApp(wx.App): 
    def OnInit(self): 
     frame = wx.Frame(None, -1, "Hello from wxPython") 
     frame.Show(True) 
     self.SetTopWindow(frame) 
     return True 

app = MyApp(0) 
app.MainLoop() 

Notez la différence dans la façon dont WX est imported- le reste des changements qu'appuyer la déclaration plus récente. Exécuter avec ipython -pylab -wthread et ça marche bien :)