porqué no centra el texto?

Carlos López Pérez clp en opencanarias.com
Mar Oct 25 09:54:59 CEST 2005


Aquí les envío el siguiente código que espero que disipe las dudas...
El posicionamiento utilizado es estático y lo interesante es el ancho
del widget 640 pixel (que es el ancho del frame).
Dependiendo de lo ancho del widget. (prueba 1, 2, 3).

Fijaros que si el ancho del widget es exactamente el ancho del texto no
hay nada que alinear... (prueba 4, 5 y 6)

### principio de código

#!/bin/env python
# -*- coding: utf-8 -*-

import wx

class MainFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, u"Ejemplo de alineación de
texto", size = (640, 480))
        wx.StaticText(self, -1, "Prueba 1", (0, 0), (640, -1),
style=wx.ALIGN_CENTRE)
        wx.StaticText(self, -1, "Prueba 2", (0, 50), (640, -1),
style=wx.ALIGN_RIGHT)
        wx.StaticText(self, -1, "Prueba 3", (0, 150), (640, -1),
style=wx.ALIGN_LEFT)
        
        wx.StaticText(self, -1, "Prueba 4", (0, 250),
style=wx.ALIGN_CENTRE)
        wx.StaticText(self, -1, "Prueba 5", (0, 300),
style=wx.ALIGN_RIGHT)
        wx.StaticText(self, -1, "Prueba 6", (0, 350),
style=wx.ALIGN_LEFT)
        

class MainApplication(wx.App):
    def OnInit(self):
        frame = MainFrame()
        frame.Show()
        self.SetTopWindow(frame)
        return True

def main():
    """ Función de arranque de la aplicación
    """
    app = MainApplication(False)
    app.MainLoop()

#----------------------------------------------------------------------------
#----------------------------------------------------------------------------

if __name__ == '__main__':
    main()

### fin de código

Otra cosa diferente sería alinear el widget dentro del frame. Recomiendo
encarecidamente mirarse los ejemplo de la demo de Layout.

Funciona igual con cualquier widget que permita alineación dentro del
widget (como el wx.TextCtlr...)

El mar, 25-10-2005 a las 03:16 -0300, Ariel Nardelli escribió:
> Algo raro tiene que haber :)
> 
> A mi me esta pasando exactamente lo mismo pero mandando a la derecha, 
> quiero que un numero me lo ponga a la derecha del tb y no hay lola, no 
> logro hacerlo.....
> 
> Lo tengo definido asi....
> 
>         self.im_la05 = wxStaticText(self.notebook_1_pane_5, -1, "Total 
> Factura")
>         self.im_tb07 = wxTextCtrl(self.notebook_1_pane_5, -1, "",  
> style=wxTE_READONLY|wxTE_RIGHT)
> 
> Y por mas que pongo cosas desde numeros hasta lo que sea siempre siempre 
> me lo alinea a la izquierda y no a la derecha como yo quiero....
> Que termine haciendo para que me lo muestre a la derecha????? facil :) 
> use el estilo "a pata", como ese campo tiene 11 posiciones lo que hago 
> es convertir con el format y despues ponerle espacios adelante hasta que 
> quede aliniado a la derecha :), lo hice asi...
> 
>         pp = locale.format("%8.2f",rc1[16],1) # Total.
>         pp1 = ((11-len(pp)) * " ")  + pp
>         self.im_tb07.SetValue(pp1)
> 
> :)
> 
> Realmente no se, no pude encontrar el porque no me funciona alinear los 
> datos de un tb ni a la derecha ni al centro.... y no entiendo porque.... :(
> 
> Ariel
> 
> Perico wrote:
> 
> > ok, gracias, probaremos a ver
> >
> > un saludo
> >
> > El 24/10/2005, a las 17:51, Carlos López Pérez escribió:
> >
> >> El estilo lo centra con respecto al espacio dentro del widget. Creo  que
> >> confundes la posición del widget dentro del panel(frame...) con  
> >> respecto
> >> al espacio que puede ocupar el texto estático...
> >>
> >> Un ejemplo:
> >>
> >> -----------------------
> >> |Texto                |    Aquí si que centraría el texto
> >> -----------------------
> >>
> >> -------
> >> |Texto|    Aquí no haría nada porque no tiene espacio....
> >> -------
> >>
> >> Respecto a al posición del widget dentro del panel...
> >>
> >> |==================================| Panel
> >> |                                  |
> >> |     -----                        |
> >> |     |   |  Widget                |
> >> |     -----                        |
> >> |                                  |
> >> |==================================|
> >>
> >> Para centrar el widget dentro del panel/frame... deberías mirarte el
> >> concepto de layout/sizers,...
> >>
> >>
> >>>> ----------------------------------
> >>>>
> >>>> Perico escribió:
> >>>>
> >>>>
> >>>>> class the_window(wxPanel):
> >>>>>
> >>>>>     def __init__(self,parent, ID):
> >>>>>         wxPanel.__init__(self,parent,ID)
> >>>>>         self.quote=wxStaticText(self,-1,"Bienvenido al Simulador de
> >>>>> Maquinas de Turing",style=wxALIGN_CENTRE)
> >>>>>
> >>>>> ¿alguien me podría decir porqué no se me centra esta etiqueta?
> >>>>>
> >>>>> gracias, perico_______________________________________________
> >>>>> Python-es mailing list
> >>>>> Python-es en aditel.org
> >>>>> http://listas.aditel.org/listinfo/python-es
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> Python-es mailing list
> >>>> Python-es en aditel.org
> >>>> http://listas.aditel.org/listinfo/python-es
> >>>>
> >>>>
> >>> _______________________________________________
> >>> Python-es mailing list
> >>> Python-es en aditel.org
> >>> http://listas.aditel.org/listinfo/python-es
> >>>
> >> -- 
> >> Carlos López Pérez <clp en wanadoo.es>
> >> -- 
> >> Carlos López Pérez <clp en opencanarias.com>
> >>
> >> _______________________________________________
> >> Python-es mailing list
> >> Python-es en aditel.org
> >> http://listas.aditel.org/listinfo/python-es
> >>
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
> 
> 
> 
-- 
Carlos López Pérez <clp en opencanarias.com>

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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