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