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: