Duda sobre wxPython

Diego Chaparro dchapar.madrid en sinvest.es
Vie Jul 25 14:18:55 CEST 2003


gema_alf en yahoo.es wrote:
> Hola aqui esta de nuevo la pesada del wxPython, es que tengo un problema. En un panel quiero poner un texto y una imagen, el texto en el centro y la imagen a la derecha parece sencillo ¿verdad?  
> pues no lo consigue he probado a poner un layout a la etiqueta y decirle que lo centre en la X e Y pero no me hace ni caso al igual que la imagen. La única solución es posicionarlo yo a mano con wxPoints pero entonces al redimensionar el panel no me conserva el movimiento.
> Bueno, es algo sencillo para los expertos que hay aqui pero yo no soy tan experta.
> Aqui os mando el código que he utilizado.
 > [...]

Yo te recomiendo usar sizers, que son cajas en las que metes controles y 
se redimensionan solas. Sería algo así ( no lo he probado ):
	panelA=wxWindow(panel,-1,wxDefaultPosition,wxDefaultSize,wxSIMPLE_BORDER)#wxTRANSPARENT_WINDOW)
sizer = wxBoxSizer ( wxHORIZONTAL )
labelEtiqueta = wxStaticText(panelA, -1,"Texto"(50,10),size=wxSize(-1, 		
				25),style=wxALIGN_CENTER)
rutaBmp=apply(os.path.join, tuple(split('image.bmp', '/')))
bmp = wxImage(rutaBmp, wxBITMAP_TYPE_BMP).ConvertToBitmap()
bitmap=wxStaticBitmap(panelA, -1, bmp,
	wxDefaultPosition,wxSize(bmp.GetWidth(), bmp.GetHeight()))
sizer.Add ( labelEtiqueta, 0, wxALIGN_CENTRE|wxALL, 0 )
sizer.Add ( bitmap, 0, wxALIGN_RIGHT|wxALL, 0 )
panelA.SetSizer(sizer)
panelA.SetAutoLayout(true)
sizer.Fit (panelA)

> #panelA
>         panelA=wxWindow(panel,-1,wxDefaultPosition,wxDefaultSize,wxSIMPLE_BORDER)#wxTRANSPARENT_WINDOW)
>         lc = wxLayoutConstraints()
>         lc.left.SameAs(panel, wxLeft, 5)#borde al redimensionar
>         lc.right.SameAs(panel,wxRight,5)
>         lc.top.SameAs(panel,wxTop,5)
>         lc.bottom.PercentOf(panel, wxBottom, 10)
>         panelA.SetConstraints(lc)
>         
>         labelEtiqueta = wxStaticText(panelA, -1,"Texto"(50,10),size=wxSize(-1, 25),style=wxALIGN_CENTER)
>         rutaBmp=apply(os.path.join, tuple(split('image.bmp', '/')))
>         bmp = wxImage(rutaBmp, wxBITMAP_TYPE_BMP).ConvertToBitmap()
>         bitmap=wxStaticBitmap(panelA, -1, bmp, wxDefaultPosition,wxSize(bmp.GetWidth(), bmp.GetHeight()))




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