rafaelcan...@hotmail.com escribió:
Buenas.

Javier, ¿Te acuerdas que pedí información sobre cómo desarrollar software accesible para personas invidentes? Pues bien, yo estoy en ese grupo como deficiente visual, por lo que un entorno gráfico va a ser casi inaccesible. v. Estudio .net es accesible, porque hay scripts para ello, pero no así Glade y otros entornos.


Hola,

Te adjunto un ejemplo de Frame montado con sizers para ajustar los controles que envié a la lista hará un mes a otro compañero.

Para que compruebes la facilidad de ajustar la fuente a la totalidad del Frame (me imagino que lo de la accesibilidad va por ahi), verás que al establecer una fuente al inicio de la declaración todos los objetos que crees a partir de ese momento heredan esta fuente.

Saludos,

--
Oswaldo Hernández
#!/usr/bin/env python
#coding=utf-8

import wx

class mFrame(wx.Frame):
    def __init__(self, parent, id, *args, **kwds):
        wx.Frame.__init__(self, parent, id, *args, **kwds)
        self.SetTitle("Ejemplo")

        # Asignar Font
        f = self.GetFont()
        f.SetPointSize(18)
        self.SetFont(f)        
        
        # Fondo del Frame y Sizer principal
        fondo = wx.Panel(self, -1)                   
        szFondo = wx.BoxSizer(wx.VERTICAL)
        fondo.SetSizer(szFondo)
        
        # Cabecera de Frame
        cabecera = wx.StaticText(fondo, -1, "Formulario de entrada de datos")
        f = cabecera.GetFont()
        f.SetWeight(wx.FONTWEIGHT_BOLD)
        cabecera.SetFont(f)
        szFondo.Add(cabecera, 0, wx.ALL, 3)
        
        # Datos - Sizer
        szData = wx.FlexGridSizer(-1, 2, 3, 3)
        szData.AddGrowableCol(1)
        szFondo.Add(szData, 2, wx.EXPAND|wx.ALL, 3)
        
        # Datos - Controles
        szData.Add(wx.StaticText(fondo, -1, "Nombre:"))
        self.Nombre = wx.TextCtrl(fondo, -1)
        szData.Add(self.Nombre, 0, wx.EXPAND)
        
        szData.Add(wx.StaticText(fondo, -1, "Otros datos:"))
        self.OtrosDatos = wx.TextCtrl(fondo, -1, style=wx.TE_MULTILINE)
        szData.Add(self.OtrosDatos, 2, wx.EXPAND)
        szData.AddGrowableRow(1)

        # Botones - Sizer
        szBtn = wx.BoxSizer(wx.HORIZONTAL)
        szFondo.Add(szBtn, 0, wx.ALIGN_RIGHT)
        
        # Botones - Controles
        BtnAceptar = wx.Button(fondo, -1, "Aceptar")
        szBtn.Add(BtnAceptar, 0, wx.ALL, 3)
        
        BtnCancelar = wx.Button(fondo, -1, "Cancelar")
        szBtn.Add(BtnCancelar, 0, wx.ALL, 3)
        
        # Captura de Eventos
        BtnAceptar.Bind(wx.EVT_BUTTON, self.OnAceptar)
        BtnCancelar.Bind(wx.EVT_BUTTON, self.OnCancelar)
        
        # MinSize y Layout        
        self.SetMinSize(wx.Size(400, 300))
        self.Fit()        
        self.Layout()
        
        
    def OnAceptar(self, evt):
        print "Aceptado"
        print "Nombre:", self.Nombre.GetValue()
        print "Otros Datos:", self.OtrosDatos.GetValue()
        self.Close()
        evt.Skip()
        
    def OnCancelar(self, evt):
        print "Cancelado"
        self.Close()
        evt.Skip()
        
# Test        
if __name__ == "__main__":
    app = wx.PySimpleApp()
    f = mFrame(None, -1)
    f.Show(True)
    app.MainLoop()
    
        
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a