##// END OF EJS Templates
some fixes
some fixes

File last commit:

r6453:48b94819
r7449:2e4aae94
Show More
gui-wx.py
106 lines | 3.0 KiB | text/x-python | PythonLexer
Fernando Perez
Make gui support code and examples uniform and all working correctly....
r4419 #!/usr/bin/env python
Fernando Perez
Update notes about GUI event loop support.
r4440 """
A Simple wx example to test IPython's event loop integration.
Brian Granger
Finishing up the wx, qt4 and tk support. Still have to do gtk.
r2214
To run this do:
Piotr Zolnierczuk
Fix broken Wx example
r5922 In [5]: %gui wx # or start IPython with '--gui wx' or '--pylab wx'
Brian Granger
Finishing up the wx, qt4 and tk support. Still have to do gtk.
r2214
In [6]: %run gui-wx.py
Ref: Modified from wxPython source code wxPython/samples/simple/simple.py
"""
import wx
class MyFrame(wx.Frame):
"""
This is MyFrame. It just shows a few controls on a wxPanel,
and has a simple menu.
"""
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title,
pos=(150, 150), size=(350, 200))
# Create the menubar
menuBar = wx.MenuBar()
Bernardo B. Marques
remove all trailling spaces
r4872 # and a menu
Brian Granger
Finishing up the wx, qt4 and tk support. Still have to do gtk.
r2214 menu = wx.Menu()
# add an item to the menu, using \tKeyName automatically
# creates an accelerator, the third param is some help text
# that will show up in the statusbar
menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Exit this simple sample")
# bind the menu event to an event handler
self.Bind(wx.EVT_MENU, self.OnTimeToClose, id=wx.ID_EXIT)
# and put the menu on the menubar
menuBar.Append(menu, "&File")
self.SetMenuBar(menuBar)
self.CreateStatusBar()
# Now create the Panel to put the other controls on.
panel = wx.Panel(self)
# and a few controls
text = wx.StaticText(panel, -1, "Hello World!")
text.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD))
text.SetSize(text.GetBestSize())
btn = wx.Button(panel, -1, "Close")
funbtn = wx.Button(panel, -1, "Just for fun...")
# bind the button events to handlers
self.Bind(wx.EVT_BUTTON, self.OnTimeToClose, btn)
self.Bind(wx.EVT_BUTTON, self.OnFunButton, funbtn)
# Use a sizer to layout the controls, stacked vertically and with
# a 10 pixel border around each
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(text, 0, wx.ALL, 10)
sizer.Add(btn, 0, wx.ALL, 10)
sizer.Add(funbtn, 0, wx.ALL, 10)
panel.SetSizer(sizer)
panel.Layout()
def OnTimeToClose(self, evt):
"""Event handler for the button click."""
Thomas Kluyver
Make print syntax in GUI integration examples Python 3 compatible.
r6453 print("See ya later!")
Brian Granger
Finishing up the wx, qt4 and tk support. Still have to do gtk.
r2214 self.Close()
def OnFunButton(self, evt):
"""Event handler for the button click."""
Thomas Kluyver
Make print syntax in GUI integration examples Python 3 compatible.
r6453 print("Having fun yet?")
Brian Granger
Finishing up the wx, qt4 and tk support. Still have to do gtk.
r2214
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, "Simple wxPython App")
self.SetTopWindow(frame)
Thomas Kluyver
Make print syntax in GUI integration examples Python 3 compatible.
r6453 print("Print statements go to this stdout window by default.")
Brian Granger
Finishing up the wx, qt4 and tk support. Still have to do gtk.
r2214
frame.Show(True)
return True
Fernando Perez
Update notes about GUI event loop support.
r4440
Fernando Perez
Make gui support code and examples uniform and all working correctly....
r4419 if __name__ == '__main__':
Fernando Perez
Update notes about GUI event loop support.
r4440
Fernando Perez
Make gui support code and examples uniform and all working correctly....
r4419 app = wx.GetApp()
if app is None:
app = MyApp(redirect=False, clearSigInt=False)
Piotr Zolnierczuk
Fix broken Wx example
r5922 else:
frame = MyFrame(None, "Simple wxPython App")
app.SetTopWindow(frame)
Thomas Kluyver
Make print syntax in GUI integration examples Python 3 compatible.
r6453 print("Print statements go to this stdout window by default.")
Piotr Zolnierczuk
Fix broken Wx example
r5922 frame.Show(True)
Brian Granger
Finishing up the wx, qt4 and tk support. Still have to do gtk.
r2214
Fernando Perez
Make gui support code and examples uniform and all working correctly....
r4419 try:
from IPython.lib.inputhook import enable_wx
enable_wx(app)
except ImportError:
app.MainLoop()