The following code snippet creates matplotlib NavToolbar2 at the top of the frame, as expected when running on wxPython 2.8.x, Python 2.5.4 / 2.6, Matplotlib 0.99.x.
However, I recently switched to Python 2.7 and wxPython 2.9.1, trying to support OS X in the 64-bit version. In this environment, an empty toolbar is created in the code below:

I noticed when creating matplotlib that he said something that WxAgg is not needed for wx 2.9 and higher, maybe this is a problem? All I have tried so far is to replace FigureCanvasWxAgg with FigureCanvasWx and NavigationToolbar2WxAgg with NavigationToolbar2Wx . Bad luck.
Any ideas what is going on?
import wx from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg, NavigationToolbar2WxAgg import matplotlib as mpl app = wx.PySimpleApp() f = wx.Frame(None) fig = mpl.figure.Figure() p = FigureCanvasWxAgg(f, -1, fig) tb = NavigationToolbar2WxAgg(fig.canvas) f.SetToolBar(tb) tb.Realize() f.Show() app.MainLoop()
One more thing ... if I replaced NavigationToolbar2WxAgg with my own navtoolbar class (code when I first answered this thread: Add new navigation modes to matplotlib ), all this happens if I do not delete tb.Realize() .
2011-05-25 08:21:18.354 Python[48013:60f] *** Assertion failure in -[NSToolbar _itemAtIndex:], /SourceCache/AppKit/AppKit-1038.35/Toolbar.subproj/NSToolbar.m:1227 2011-05-25 08:21:18.356 Python[48013:60f] An uncaught exception was raised 2011-05-25 08:21:18.356 Python[48013:60f] Invalid parameter not satisfying: index>=0 && index<[self _numberOfItems] 2011-05-25 08:21:18.358 Python[48013:60f] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: index>=0 && index<[self _numberOfItems]' *** Call stack at first throw: ( 0 CoreFoundation 0x00007fff868ef7b4 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x00007fff83e9b0f3 objc_exception_throw + 45 2 CoreFoundation 0x00007fff868ef5d7 +[NSException raise:format:arguments:] + 103 3 Foundation 0x00007fff86d7c77e -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 198 4 AppKit 0x00007fff806f44a9 -[NSToolbar _itemAtIndex:] + 158 5 AppKit 0x00007fff806f3e94 -[NSToolbar _removeItemAtIndex:notifyDelegate:notifyView:notifyFamilyAndUpdateDefaults:] + 56 6 libwx_osx_cocoau-2.9.1.0.0.dylib 0x0000000101aea2a6 _ZN9wxToolBar7RealizeEv + 1430 7 _controls_.so 0x00000001048d4b76 _wrap_ToolBarBase_Realize + 102 8 .Python 0x00000001000ca81a PyEval_EvalFrameEx + 23498 9 .Python 0x00000001000cc8c5 PyEval_EvalCodeEx + 1733 10 .Python 0x00000001000ca9bf PyEval_EvalFrameEx + 23919 11 .Python 0x00000001000cc8c5 PyEval_EvalCodeEx + 1733 12 .Python 0x00000001000cb0c8 PyEval_EvalFrameEx + 25720 13 .Python 0x00000001000cc8c5 PyEval_EvalCodeEx + 1733 14 .Python 0x00000001000ca9bf PyEval_EvalFrameEx + 23919 15 .Python 0x00000001000cb2a6 PyEval_EvalFrameEx + 26198 16 .Python 0x00000001000cb2a6 PyEval_EvalFrameEx + 26198 17 .Python 0x00000001000cc8c5 PyEval_EvalCodeEx + 1733 18 .Python 0x00000001000ca9bf PyEval_EvalFrameEx + 23919 19 .Python 0x00000001000cb2a6 PyEval_EvalFrameEx + 26198 20 .Python 0x00000001000cc8c5 PyEval_EvalCodeEx + 1733 21 .Python 0x00000001000ccbc6 PyEval_EvalCode + 54 22 .Python 0x00000001000f0c7e PyRun_FileExFlags + 174 23 .Python 0x00000001000f1aa1 PyRun_SimpleFileExFlags + 817 24 .Python 0x00000001001093d9 Py_Main + 2825 25 Python 0x0000000100000f54 0x0 + 4294971220 ) terminate called after throwing an instance of 'NSException'
source share