[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