[Python-es] posicionamiento de elementos con wxpython

Narcis Garcia - GiLUG informatica en actiu.net
Dom Mayo 9 22:05:58 CEST 2010


- La disposición de una serie de controles yo la establezco con un bucle 
(for ControlActual in Controles), que vaya incrementando una variable 
PosX o PosY sumándole por ejemplo 10 + la medida del control colocado: 
MiControl.GetSize().GetHeight()

- Para adaptar al tamaño de la ventana supongo que hay que medirla 
(GetSize?) y entonces dividir el espacio entre controles y separaciones 
de margen. Si esto hay que rehacerlo cuando el usuario estira el tamaño 
de la ventana, supongo que hay que interceptar tal evento con el objeto 
Frame.



En/na rafaelcantos en hotmail.com ha escrit:
> Buenas.
>  
> Abajo le hes puesto un código que estoy usando para probar. No consigo 
> dar con la clave para lo siguiente:
> 1. Colocar los controles dentro de un boxSizer en vertical.
> 2. Que los controles se adapten al tamaño de la ventana
> 3. que los controles ocupen todo el espacio disponible para ellos
> 4. Alinear los controles dentro del espacio asignado donde quiera.
>  
> He mirado en la documentación de wxpython y he probado con los valores 
> posibles, pero, o no me entero bien, o he sido incapaz de configurarlo, 
> o no he entendido bien como funciona el boxSizer.
> Les agradecería su ayuda.
>  
>  
>  
> 
> #!/usr/bin/python
> 
> try:
> 
> import wx
> 
> except ImportError:
> 
> raise ImportError,"Se requiere el modulo wxPython"
> 
> class View(wx.Frame):
> 
> def __init__(self, parent, id, title):
> 
> wx.Frame.__init__(self, parent, id, title, size=(800, 600))
> 
> self.parent = parent
> 
> self.Centre()
> 
> self.initialize()
> 
> self.Show(True)
> 
> def initialize(self):
> 
> self.panel = wx.Panel(self, -1)
> 
> box = wx.BoxSizer(wx.VERTICAL)
> 
> self.entrada = wx.TextCtrl(self.panel, -1, value=u"Ingrese un texto:", 
> style=wx.TE_PROCESS_ENTER)
> 
> box.Add(self.entrada, 0, wx.ADJUST_MINSIZE, 10)
> 
> self.boton = wx.Button(self.panel, -1, label="Pulsame ahora mismo!")
> 
> box.Add(self.boton, 0, wx.ADJUST_MINSIZE, 10)
> 
> box.Fit(self.panel)
> 
>  
> 
> if __name__ == "__main__":
> 
> app = wx.App(False)
> 
> view = View(None, -1, 'Ventana principal')
> 
> app.MainLoop()
> 
>  
> 
> Saludos
> 
>  
> 
> Rafa
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



Más información sobre la lista de distribución Python-es