Ver Mensaje Individual
  #10 (permalink)  
Antiguo 19/12/2012, 11:45
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: wxGlade - Layout 1 barra de herramientas + 2 paneles

Código XML:
Ver original
  1. <?xml version="1.0"?>
  2. <!-- generated by wxGlade 0.6.4 on Wed Dec 19 11:36:00 2012 -->
  3.  
  4. <application path="/home/raz/glade/temp.py" name="" class="" option="0" language="python" top_window="frame_1" encoding="UTF-8" use_gettext="0" overwrite="0" use_new_namespace="1" for_version="2.8" is_template="0" indent_amount="4" indent_symbol="space" source_extension=".cpp" header_extension=".h">
  5.     <object class="MyFrame" name="frame_1" base="EditFrame">
  6.         <style>wxDEFAULT_FRAME_STYLE</style>
  7.         <title>frame_1</title>
  8.         <size>300, 300</size>
  9.         <object class="wxBoxSizer" name="sizer_1" base="EditBoxSizer">
  10.             <orient>wxVERTICAL</orient>
  11.             <object class="sizeritem">
  12.                 <flag>wxEXPAND</flag>
  13.                 <border>0</border>
  14.                 <option>1</option>
  15.                 <object class="wxPanel" name="panel_1" base="EditPanel">
  16.                     <style>wxTAB_TRAVERSAL</style>
  17.                     <object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer">
  18.                         <orient>wxVERTICAL</orient>
  19.                         <object class="sizeritem">
  20.                             <border>0</border>
  21.                             <option>0</option>
  22.                             <object class="wxTextCtrl" name="text_ctrl_1" base="EditTextCtrl">
  23.                             </object>
  24.                         </object>
  25.                     </object>
  26.                 </object>
  27.             </object>
  28.             <object class="sizeritem">
  29.                 <flag>wxEXPAND</flag>
  30.                 <border>0</border>
  31.                 <option>1</option>
  32.                 <object class="wxPanel" name="panel_2" base="EditPanel">
  33.                     <style>wxTAB_TRAVERSAL</style>
  34.                     <hidden>1</hidden>
  35.                     <object class="wxBoxSizer" name="sizer_3" base="EditBoxSizer">
  36.                         <orient>wxVERTICAL</orient>
  37.                         <object class="sizeritem">
  38.                             <border>0</border>
  39.                             <option>0</option>
  40.                             <object class="wxCheckBox" name="checkbox_1" base="EditCheckBox">
  41.                                 <label>checkbox_1</label>
  42.                             </object>
  43.                         </object>
  44.                     </object>
  45.                 </object>
  46.             </object>
  47.             <object class="sizeritem">
  48.                 <border>0</border>
  49.                 <option>0</option>
  50.                 <object class="wxButton" name="button_1" base="EditButton">
  51.                     <label>Switch</label>
  52.                     <events>
  53.                         <handler event="EVT_BUTTON">OnClick</handler>
  54.                     </events>
  55.                 </object>
  56.             </object>
  57.         </object>
  58.     </object>
  59. </application>

Una vez generado el código pon este código dentro de OnClick
Código Python:
Ver original
  1. def OnClick(self, event):  # wxGlade: MyFrame.<event_handler>
  2.     if self.panel_1.IsShown():
  3.         self.panel_1.Hide()
  4.         self.panel_2.Show()
  5.     else:
  6.         self.panel_1.Show()
  7.         self.panel_2.Hide()
  8.     self.Layout()
  9.     event.Skip()

Quedándote en total así:
Código Python:
Ver original
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # generated by wxGlade 0.6.4 on Wed Dec 19 11:21:44 2012
  4.  
  5. import wx
  6.  
  7. # begin wxGlade: extracode
  8. # end wxGlade
  9.  
  10.  
  11. class MyFrame(wx.Frame):
  12.     def __init__(self, *args, **kwds):
  13.         # begin wxGlade: MyFrame.__init__
  14.         kwds["style"] = wx.DEFAULT_FRAME_STYLE
  15.         wx.Frame.__init__(self, *args, **kwds)
  16.         self.panel_1 = wx.Panel(self, -1)
  17.         self.text_ctrl_1 = wx.TextCtrl(self.panel_1, -1, "")
  18.         self.panel_2 = wx.Panel(self, -1)
  19.         self.checkbox_1 = wx.CheckBox(self.panel_2, -1, "checkbox_1")
  20.         self.button_1 = wx.Button(self, -1, "Switch")
  21.  
  22.         self.__set_properties()
  23.         self.__do_layout()
  24.  
  25.         self.Bind(wx.EVT_BUTTON, self.OnClick, self.button_1)
  26.         # end wxGlade
  27.  
  28.     def __set_properties(self):
  29.         # begin wxGlade: MyFrame.__set_properties
  30.         self.SetTitle("frame_1")
  31.         self.SetSize((300, 300))
  32.         self.panel_2.Hide()
  33.         # end wxGlade
  34.  
  35.     def __do_layout(self):
  36.         # begin wxGlade: MyFrame.__do_layout
  37.         sizer_1 = wx.BoxSizer(wx.VERTICAL)
  38.         sizer_3 = wx.BoxSizer(wx.VERTICAL)
  39.         sizer_2 = wx.BoxSizer(wx.VERTICAL)
  40.         sizer_2.Add(self.text_ctrl_1, 0, 0, 0)
  41.         self.panel_1.SetSizer(sizer_2)
  42.         sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0)
  43.         sizer_3.Add(self.checkbox_1, 0, 0, 0)
  44.         self.panel_2.SetSizer(sizer_3)
  45.         sizer_1.Add(self.panel_2, 1, wx.EXPAND, 0)
  46.         sizer_1.Add(self.button_1, 0, 0, 0)
  47.         self.SetSizer(sizer_1)
  48.         self.Layout()
  49.         # end wxGlade
  50.  
  51.     def OnClick(self, event):  # wxGlade: MyFrame.<event_handler>
  52.         if self.panel_1.IsShown():
  53.             self.panel_1.Hide()
  54.             self.panel_2.Show()
  55.         else:
  56.             self.panel_1.Show()
  57.             self.panel_2.Hide()
  58.         self.Layout()
  59.         event.Skip()
  60.  
  61. # end of class MyFrame
  62. if __name__ == "__main__":
  63.     app = wx.PySimpleApp(0)
  64.     wx.InitAllImageHandlers()
  65.     frame_1 = MyFrame(None, -1, "")
  66.     app.SetTopWindow(frame_1)
  67.     frame_1.Show()
  68.     app.MainLoop()

Última edición por razpeitia; 20/12/2012 a las 13:28