http://www.filedropper.com/cambiarpanelesdesdetoolbar
(Archivo Python + 2 iconos)
Deseo simplemente que al hacer clic en una de las herramientas se muestre el panel correspondiente y se oculte el otro. Los paneles están vacíos, es solo para probar si los botones funcionan.
Curiosamente puedo lograr ese resultado si uso botones estándard DENTRO de los paneles, pero no logro hacerlo con los propios botones de la toolbar.
O sea con botones comunes lo resolvería con algo como
Código:
Deber ser algo de sintaxis con la forma de referenciar a los botones de la toolbar pero no encuentro solución y ya busqué en la web también y no encuentro ejemplos funcionando.self.Bind(wx.EVT_BUTTON, self.OnClickHerramienta1, self.button_Herramienta1)
Es decir, si defino el botón de la Toolbar con:
Código:
self.frame_1_toolbar.AddLabelTool(1, "HERRAMIENTA1", wx.Bitmap("1.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, "Herramienta1", "Herramienta1")
No debería poder referenciarlo con??
Código:
La verdad que intento avanzar en Python pero la poca documentación de ejemplos sencillos funcionando hace bastante pesado el camino.self.Bind(wx.EVT_BUTTON, self.OnClickHerramienta1, self.button_Herramienta1)
No encontré en la web un solo ejemplo de este tipo para poder basarme.
Código:
#!/usr/bin/env python # -*- coding: iso-8859-15 -*- # generated by wxGlade 0.6.5 (standalone edition) on Wed Dec 19 10:19:46 2012 import wx # begin wxGlade: extracode # end wxGlade class MyFrame(wx.Frame): def __init__(self, *args, **kwds): # begin wxGlade: MyFrame.__init__ kwds["style"] = wx.DEFAULT_FRAME_STYLE wx.Frame.__init__(self, *args, **kwds) # Tool Bar self.frame_1_toolbar = wx.ToolBar(self, -1) self.SetToolBar(self.frame_1_toolbar) self.frame_1_toolbar.AddLabelTool(1, "HERRAMIENTA1", wx.Bitmap("1.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, "Herramienta1", "Herramienta1") self.frame_1_toolbar.AddLabelTool(2, "HERRAMIENTA2", wx.Bitmap("2.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, "Herramienta2", "Herramienta2") # Tool Bar end #Defino los dos paneles self.panel_1 = wx.Panel(self, -1) self.sizer_3_staticbox = wx.StaticBox(self.panel_1, -1, "PANEL DE LA HERRAMIENTA 1 - UNO") self.panel_2 = wx.Panel(self, -1) self.sizer_3_staticbox = wx.StaticBox(self.panel_1, -1, "PANEL DE LA HERRAMIENTA 2 - DOS") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnClickHerramienta1, self.button_Herramienta1) self.Bind(wx.EVT_BUTTON, self.OnClickHerramienta2, self.button_Herramienta2) # end wxGlade def __set_properties(self): # begin wxGlade: MyFrame.__set_properties self.SetTitle("frame_1") self.frame_1_toolbar.SetToolBitmapSize((32, 32)) self.frame_1_toolbar.Realize() self.panel_1.SetBackgroundColour(wx.Colour(216, 191, 216)) # end wxGlade def __do_layout(self): # begin wxGlade: MyFrame.__do_layout sizer_1 = wx.BoxSizer(wx.VERTICAL) self.sizer_3_staticbox.Lower() sizer_3 = wx.StaticBoxSizer(self.sizer_3_staticbox, wx.HORIZONTAL) self.panel_1.SetSizer(sizer_3) sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0) self.SetSizer(sizer_1) sizer_1.Fit(self) self.Layout() # end wxGlade def OnClickHerramienta1(self, event): self.panel_1.Show() self.panel_2.Hide() self.Layout() event.Skip() def OnClickHerramienta2(self, event): self.panel_1.Hide() self.panel_2.Show() self.Layout() event.Skip() # end of class MyFrame if __name__ == "__main__": app = wx.PySimpleApp(0) wx.InitAllImageHandlers() frame_1 = MyFrame(None, -1, "") app.SetTopWindow(frame_1) frame_1.Show() app.MainLoop()