Standalone WX GUI support is broken #645

Closed
fperez opened this Issue Jul 30, 2011 · 6 comments

Projects

None yet

4 participants

@fperez
Member
fperez commented Jul 30, 2011

The example in docs/lib/gui-wx.py doesn't currently work, and I've failed in all simple attempts at fixing it. Since we can't hold the 0.11 release for any longer, I'm marking this as a known bug in the release notes, but we should get to the bottom of it.

The other three examples (Qt, GTK, Tk) do run fine.

@fperez
Member
fperez commented Jul 30, 2011

When fixing this, don't forget to update the GUI section in the docs/source/interactive/reference.txt file that has warnings about this issue.

@piotradam
Contributor

Not sure what to expect from this example but here's what worked for me. I got the pop-up and the buttons worked.

BTW: what does %gui wx do?

Piotr

$ git diff
diff --git a/docs/examples/lib/gui-wx.py b/docs/examples/lib/gui-wx.py
index c55ce4f..a374024 100755
--- a/docs/examples/lib/gui-wx.py
+++ b/docs/examples/lib/gui-wx.py
@@ -105,13 +105,19 @@ class MyApp(wx.App):


 if __name__ == '__main__':
-    raise NotImplementedError(
-        'Standalone WX GUI support is currently broken. '
-        'See https://github.com/ipython/ipython/issues/645 for details')
+    #raise NotImplementedError(
+    #    'Standalone WX GUI support is currently broken. '
+    #    'See https://github.com/ipython/ipython/issues/645 for details')

     app = wx.GetApp()
     if app is None:
         app = MyApp(redirect=False, clearSigInt=False)
+    else:
+        frame = MyFrame(None, "Simple wxPython App")
+        app.SetTopWindow(frame)
+        print "Print statements go to this stdout window by default."
+        frame.Show(True)
+

     try:
         from IPython.lib.inputhook import enable_wx
@takluyver
Member

@piotradam : Were you able to continue running commands in IPython while the Wx window was displayed?

@piotradam
Contributor

Yes. I just tried it. I even imported pylab and made a simple plot. The funny thing is that it showed as Tk window.

@piotradam
Contributor

@takluyver it event continued to work after I close the window :)

@takluyver
Member

After you close the window is the easy bit ;-). Normally, if you ran a GUI app inside IPython, IPython would lock up until you close the new window. It's keeping both the window and the shell interactive at the same time that takes work.

I imagine matplotlib will just use your default backend.

@fperez : Can you now get this working as well?

@minrk minrk closed this in 6e492bd Feb 7, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment