Sobre sizers

Jose aragorn en pythonhispano.org
Lun Nov 15 12:47:19 CET 2004


El lun, 15-11-2004 a las 00:46, Amm-Python escribió:
> Es curioso lo de los sizers.
> Se supone que permiten que las ventanas sean muy parecidas
> independientemente del sistema operativo.
> Pero el ejemplo de la página que se indica, en Windows XP, sale fatal.
> Ya puedes ir buscado el botón de "reemplazar",....
> Incluso los formularios que he hecho desde otros W$ o Linux salen fatal.
> Como a los "genios" de M$ se les ha ocurrido que el título del
> Formulario en XP sea más ancho, no encaja nada, ni sizers ni forms
> diseñados posicionalmente , lo dicho nada de nada, como hayas ajustado
> mucho el Formulario la liastes.
> 
> Al final lo único que me está sirviendo es diseñar en lo que sea y
> ajustar para que se vea bien en lo básico:
> W$ 95,98,2000
> W$ Xp
> Linux Kde
> Linux Gnome
> 
> Incluso mejor si no utilizo sizers.
> 
> Ya se que es un curro, pero es cuestión de organizarse.
> 
> Ahora lo que me estoy buscando es algún módulo que monte el formulario
> de forma automática pasándole parámetros o algo por el estilo.
> Por ejemplo:
> Tengo que hacer 15 mantenimientos de tablas varias: Provincias, paises,
> distritos, empresas, zonas, ...
> Son mantenimientos básicos con pocos campos, para qué perder el tiempo
> dibujando formularios....
> Yo le pasaría los campos: codigo text 4, descripción text 40, ....
> Y él me crearía el formulario poniendo los campos donde pueda. Si se le
> puede indicar el nº de columnas mejor:
> Es decir un diccionario que indique, label del campo, tipo (texto, nº ,
> fecha), longitud del texto, fila y columna,....
> Esto si que agilizaría el diseño.
> 
> Y si además me mete los posibles botones de gestión del formulario (new,
> delete, prev, next, firs, last, ..) y lo puedo relacionar con la tabla
> en concreto ya sería la hostia.
>  
> Si no existe, habría que plantearse hacerlo, .... en WxPython, por
> supuesto.

Que yo sepa no hay nada en wx.

Pero hacerlo no debería ser nada difícil. Tendrás que crear 1 formulario
'plantilla', 1 formulario 'vista' y N clases 'controladores' (una por
cada mantenimiento):
   - diseñas, con wxGlade, un formulario (la 'PLANTILLA'), con 1
etiqueta, 1 campo de edición y la botonera completa
   - generas el código Python correspondiente
   - creas una clase 'hija' (la 'VISTA') de la generada anteriormente
con wxGlade
   - modificas su método __init__ para que acepte un parámetro más: el
objeto que define la estructura del formulario
   - modificas el proceso de generación de los widgets
   - modificas el proceso de distribución visual de los widgets

Ahora, además, tendrás que crear 1 clase 'hija' (el 'CONTROLADOR') de la
clase 'VISTA' por cada mantenimiento que quieras realizar y donde
incluirás el código específico del mantenimiento:
   - inicializar la composición del formulario (la parte 'VISTA') con la
estructura de campos correspondiente (o sea, el objeto que define la
estructura del formulario 'VISTA')
   - asignar los datos a los campos
   - responder a los botones de la botonera

En un escenario así tendrás que resolver algunas dificultades
adicionales:
   - ¿cómo emparejar los campos de texto con los campos del registro de
datos?
   - (ahora mismo no se me ocurre ninguno más)...

------------ 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