[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Interfaces gráficas con Python



Hola,

El 12/06/2013 12:51 p.m., Camaleón escribió:
Hola,

Tengo un script muy sencillo que uso para enviar por correo archivos
troceados a los usuarios que no tienen acceso a Internet. El script hace
4 preguntas básicas (archivo para enviar, destinatario, etc...) y ejecuta
4 comandos que trocean el archivo, comprimen los trozos y los mandan por
correo. Actualmente está programado con Zenity (GUI) y tengo una segunda
versión que usa Dialog (ncurses).

Problema:

Ahora que estoy con XFCE no tengo el paquete zenity instalado y son unos
40 MiB lo cual no me hace mucha gracia (40 MiB para pintar cuatro
ventanas me parece un "peaje" excesivamente alto además creo que zenity
ahora usa GTK+3 y XFCE funciona con GTK+2 por lo que las ventanas
pintadas con GTK+3 parecen más bien ventanucos horribles de hace 20
años...).

Idea:

Tengo Python (2.7.3) que dicho de paso me parece un lenguaje de mayor
recorrido y duración a largo plazo pero no tengo ni idea de si el cambio
de zenity a python es un salto demasiado grande (no he programado en
python nunca) o si voy a necesitar de paquetería adicional para dibujar
ventanas y cuadros de diálogo sencillos (¿wxWidgets?) porque si voy a
tener que atiborrarme a instalar cosicas para que el python pueda
presentar cuadros de diálogo al usuario pues entonces como que me lo
repienso.

Preguntas:

1/ ¿La paquetería de Python estándar que se instala con Debian permite
dibujar ventanitas y cuadros de diálogo "a lo Zenity"?

No sé exactamente si de vista sean lo mismo, pero puedes tirar de TKInter[1], que por lo que sé viene integrado dentro de la biblioteca estándar de Python. Honestamente nunca lo he utilizado (no conecta en GNU/Linux con las AT-SPI, ni en windows con MSAA, en definitiva, inaccesible por donde se vea :) ), pero la gente lo suele usar cuando lo que quiere es no usar otros módulos más pesados o dependientes, aunque por ahí se comenta que no es tan flexible como otros (PyGtk, PyQt, wx-python...). Supongo que la cosa es de verlo.


2/ En caso de que sea necesario instalar algún complemento ¿qué tendría
que instalar?

Para gtk+2, Python tiene PyGtk, que son solo bindings para las gtk2 que funcionaban en las 2.x de Gnome, a partir de gnome 3, se usa GObject, pero aún funcionan las pygtk2, por lo que sé si tienes ya las gtk+2 no es mucho peso adicional instalar Pygtk, pygobject y compañía, eso si alguna aplicación que usas no lo ha hecho ya. WxPython usará las librerías nativas del SO donde lo corras para hacer las gráficas, es decir, GTK+2 en tu caso, así que creo que igual, si no te acomoda TKInter, sería más buena idea PyGtk, del que incluso hay por ahí un tuto en español que aún funciona[2]


3/ Los que programáis en Python ¿veis factible pasar un script sencillo
de 4 diálogos hecho con Zenity y que ejecuta básicamente comandos de bash
a Python?

Creo que esto de llamar comandos bash desde Python lo he hecho un par de veces, y al menos me ha resultado bien. Tienes subprocess[3], igual desde la librería estándar, que tiene funciones para tratar los comandos de distintas formas, y puedes también redireccionar la salida estándar o de error hacia alguna parte. Al menos desde mi punto de vista sí me parece factible. :)

4/ ¿Alguna otra alternativa que se os ocurra a Zenity/Dialog y que no sea
costosa (en recursos/espacio en disco) ni complicada de implementar? Java
me hace tilín pero más desde el punto de vista de usuario que desde la
perspectiva del programador e igualmente me parece excesivo para esta
tarea...

En fin, si no encuentro un reemplazo factible siempre puedo volver al
robusto ncurses y usar Dialog y puesto que ya tengo el script hecho sería
lo más lógico, pero la verdad es que la GUI era muy práctica O:-)

Saludos,

Saludos.


[1]: http://tkinter.unpythonic.net/wiki/
[2]: http://www.pygtk.org/pygtk2tutorial-es/index.html
[3]: http://docs.python.org/library/subprocess.html


Reply to: