toolbars on OS-X with wxPython2.8
Christopher Barker
Chris.Barker at noaa.gov
Tue Feb 13 16:19:10 PST 2007
Hi all,
Testing FloatCanvas on OS-X, I've noticed an issue with toolbars. I
can't seem to place regular old buttons on a toolbar anymore.
I notices this notice under 2.7.1.1 Recent Changes:
"""
wxMac: I've turned on the compile option for using the native toolbar on
the Mac now that it supports hosting of controls. If the toolbar is
managed by the frame via either CreateToolBar() or SetToolBar() then the
native toolbar will be used. Additional toolbars, or toolbars that are
not children of the frame, are managed by sizers or what-not will still
use the emulated toolbar because of platform restrictions in how/where
the native toolbar can be used.
"""
In this case, I've got the toolbar manged by a sizer, so it should be
using the old emulated toolbar, but it's not working right. I'll poke
into this more, but just in case someone has a brilliant suggestion,
here's a bit of the code:
def BuildToolbar(self):
tb = wx.ToolBar(self)
self.ToolBar = tb
tb.SetToolBitmapSize((24,24))
self.PointerTool = tb.AddRadioTool(wx.ID_ANY,
bitmap=Resources.getPointerBitmap(),
shortHelp = "Pointer")
self.Bind(wx.EVT_TOOL,
lambda evt : self.SetMode(Mode=self.GUIMouse),
self.PointerTool)
self.ZoomInTool = tb.AddRadioTool(wx.ID_ANY,
bitmap=Resources.getMagPlusBitmap(),
shortHelp = "Zoom In")
self.Bind(wx.EVT_TOOL,
lambda evt : self.SetMode(Mode=self.GUIZoomIn),
self.ZoomInTool)
self.ZoomOutTool = tb.AddRadioTool(wx.ID_ANY,
bitmap=Resources.getMagMinusBitmap(),
shortHelp = "Zoom Out")
self.Bind(wx.EVT_TOOL,
lambda evt : self.SetMode(Mode=self.GUIZoomOut),
self.ZoomOutTool)
self.MoveTool = tb.AddRadioTool(wx.ID_ANY,
bitmap=Resources.getHandBitmap(),
shortHelp = "Move")
self.Bind(wx.EVT_TOOL,
lambda evt : self.SetMode(Mode=self.GUIMove),
self.MoveTool)
tb.AddSeparator()
self.ZoomButton = wx.Button(tb, label="Zoom To Fit")
tb.AddControl(self.ZoomButton)
self.ZoomButton.Bind(wx.EVT_BUTTON, self.ZoomToFit)
tb.Realize()
return tb
The "ZoomButton" never gets rendered. Is there something I should be
doing differently?
By the way, there are also some oddities in the toolbar used by matplotlib.
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
More information about the wxpython-users
mailing list