RE: [Python-es] Ayuda con GUI's para diseñar ventanas en Python

Amm-Python python en ammsoft.com
Dom Ene 2 14:30:31 CET 2005


Yo creo que, actualmente, lo más coherente es usar wxwidgets.
Le faltan características importantes, como que las etiquetas "labels"
puedan ser trasparentes, pero que le vamos a hacer, supongo que con el
tiempo ya caerán.

> Entonces sólo me quedó wxWidgets. La versión estable es 
> demasiado antigua y en windows los controles tienen la 
> aparienda de win95/98.

Creo que en este punto la gente se confunde. Los controles que se
utilizan en wxwidget son los propios del sistema operativo donde corre.
Es decir; si ejecutas el programa en W95 veras controles nativos de W95,
si lo ejecutas en WXP los veras en modo WXP, si los corres en Linux bajo
Gnome, ídem.
 
> La versión última, 2.5.3 tiene bastante mejor aspecto. Me 
> descargué el wxPython (ultima versión) y estuve viendo los 
> demos(que me parecen completísimos), y finalmente me decidí  por esto.
> 
> Dado que boa constructor no funciona con wxPython 2.5, sólo 
> me queda ver diseñadores:

Realmente es una pena, ya que yo ya le iba cogiendo el tranquillo a Boa,
no obstante sigo haciendo cosas con la versión de Wxwidgets 2.4. y el
resultado es muy satisfactorio. Yo estoy utilizando para un nuevo
proyecto la versión 0.3.1 de Boa, es de hace 4 meses, por lo que, viendo
que el proyecto está vivo, supongo y espero que Riaan Boyseen nos de una
grata alegría dentro de poco.  
 
> Me descargué todos los que vienen la página de wxWidgets 
> (wxDesigner, BlockDialog, y un par de ellos más) y el wxGlade 
> y también Gazpacho.
> 
> Despues de ver wxPython me quedo sorprendido de la poca 
> paleta de controles que tienen todos los diseñadores. De 
> todos ellos, los únicos que se salvan son BlockDialog 
> (comercial) y Gazpacho, aunque los dos no tienen nada que ver 
> con VB en cuanto a la visualización sobre la marcha de los 
> formularios. Todos ellos generan XML

Hay algunos más como:
PythonCard
SPE !!!! Que utiliza wxGlade.
DrPython

En WxPython la paleta de controles es la de wxwidgets, lo que pasa es
que wxglade utiliza pocos. Por eso no me gusta demasiado.

> Es un auténtico coñazo diseñar con los sizers que te cambian 
> los tamaños, anidan controles unos dentro de otros etc.... De 
> todas maneras en BlockDialog es, para mi, el más completo. Si 
> quieres un diseño similar a VB lo que tienes que hacer es poner un
> StaticSizer(???) y luego colocar los controles dentro sin que 
> se te mueva nada.
> 
> En wx y gtk los diseñadores están a años luz del QT 
> Assistant, con el que tu colocas los controles donde quieres 
> y luego los encierras en sizers o no según te de la gana. Un 
> método mucho mejor que el ir anidando controles mediante un arbol.
> 
> Bueno, mi conclusión final es que me voy a hacer los XML a 
> pelo o mediante código si es necesario. A ver si soy capaz.

Lo de usar sizers supongo que es una cuestión de experiencia y de
"ideología".
El concepto de que son fantásticos ya que se adaptarán a todos los S.O.
Y diferentes fuentes de letras y tamaños de pantallas, es genial,
siempre que los formularios sean sencillos, en cualquier otro caso para
mi son un agobio.

Por otro lado yo prefiero controlar la posición de todos los elementos,
por lo que para prevenir incompatibilidades, siempre hago pruebas de
testeo en W98, W2k, Wxp, Linux KDE, Linux Gnome. Así de paso reviso
temas de portabilidad. Es trabajo, pero el resultado creo que es mejor.
Además llevo una temporada que estoy obsesionado con el tema del diseño
utilizando el dichoso número "áureo" y francamente me encanta el
resultado. Eso si, es un curro de la leche. ;-)

Y por último sobre utilizar ficheros Xml como contenedores del formato
del formulario, pues sólo puedo decir que es curioso, pero yo no lo
utilizo ya que tengo algunos formularios que crean controles en tiempo
de ejecución, sobre todo formularios de configuración, donde al
seleccionar una opción, aparecen y desaparecen ciertos controles. Cosa
que no se hacer con ficheros Xml. Aparte de que también me lío al
intentar internacionalizar esos ficheros, cosas de novato.

Si alguien sabe de un ejemplo "curioso" de como hacer estas dos cosas,
agradecería que me indique donde descargarlo.

Un saludo,
Toni.

P.D.
Resumiendo: BOA es una opción coherente.

P.D.2.
Acabo de echarle un vistazo al StaticBoxSizer de wxGlade. Visto que
arrastrar controles como en VB no es determinante en mi nueva forma de
diseñar formularios, ya que debo ajustarlos después de calcular su
posición y tamaño con referencia al número áureo. Creo que abandono Boa
y me paso a SPE + WxGlade con Wxwidget 2.5

Que stress que me está provocando este mundo Python. ;-)




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