Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/03/2013, 19:35
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: Wxpython: Realmente compatible con (Linux,Windows,Mac)

Lo que pasa es que tienes que ser cuidadoso cuando trabajas con wxpython.

Por ejemplo en tu ejemplo, hay cosas en el panel y otras cosas en el frame, cuando todo debería de estar en el panel. Esto es importante no solamente para wx si no para cualquier otro framework de GUI en cualquier otra plataforma.

Código Python:
Ver original
  1. import wx
  2.  
  3. class MyPanel(wx.Panel):
  4.     def __init__(self, *args, **kwargs):
  5.         kwargs['style'] = wx.TAB_TRAVERSAL
  6.         wx.Panel.__init__(self, *args, **kwargs)
  7.         vbox = wx.BoxSizer(wx.VERTICAL)
  8.        
  9.         hbox = wx.BoxSizer(wx.HORIZONTAL)
  10.         st1 = wx.StaticText(self, -1, label='Nombre: ')  
  11.         self.tc1 = wx.TextCtrl(self, -1, size=(100, -1))
  12.  
  13.         self.tc1.SetFocus()
  14.  
  15.         hbox.Add(st1)
  16.         hbox.Add(self.tc1, flag = wx.LEFT, border = 10)
  17.         vbox.Add(hbox, flag=wx.LEFT | wx.TOP, border=40)
  18.         vbox.Add((-1, 10))
  19.  
  20.         hbox2 = wx.BoxSizer(wx.HORIZONTAL)
  21.         st2 = wx.StaticText(self, -1, label=u"Nombre 2: ")
  22.         self.tc2 = wx.TextCtrl(self, -1, size=(100,-1))
  23.         hbox2.Add(st2)
  24.         hbox2.Add(self.tc2, flag=wx.LEFT, border=25)
  25.         vbox.Add(hbox2, flag=wx.LEFT | wx.TOP, border=40)
  26.         vbox.Add((-1,10))  
  27.    
  28.         hbox3 = wx.BoxSizer(wx.HORIZONTAL)
  29.         st3 = wx.StaticText(self, -1, label=u"Nombre 3: ")
  30.         self.tc3 = wx.TextCtrl(self, -1, size=(100, -1))
  31.         hbox3.Add(st3)
  32.         hbox3.Add(self.tc3, flag=wx.LEFT, border=20)
  33.         vbox.Add(hbox3, flag=wx.LEFT | wx.TOP | wx.BOTTOM, border=40)
  34.         vbox.Add((-1,10))
  35.      
  36.         self.SetSizer(vbox)
  37.  
  38.         self.tc1.MoveAfterInTabOrder(self.tc3)
  39.         self.tc2.MoveAfterInTabOrder(self.tc1)
  40.         self.tc3.MoveAfterInTabOrder(self.tc2)
  41.        
  42.  
  43. class MyFrame(wx.Frame):
  44.     def __init__(self):
  45.         wx.Frame.__init__(self, None, wx.ID_ANY,
  46.                           "Foco", size=(300, 400))  
  47.         self.InitUI()
  48.         self.Centre()
  49.         self.Show()
  50.  
  51.     def InitUI(self):
  52.         panel = MyPanel(self, style=wx.TAB_TRAVERSAL)
  53.  
  54.        
  55.  
  56. if __name__ == "__main__":
  57.     app = wx.App(False)
  58.     frame = MyFrame()
  59.     app.MainLoop()