Manual programación interfaces pa Ubuntu con Glade y Python
Esti manual distribuyese baxo llicencia Creative Commons Reconocimientu-Non comercial-Compartir baxo la mesma llicencia 3.0. Más información equí. Agradeceríate tamién la torna a otres llingües que quieras facer. (Pon un comentario col enllaz ¡Gracies!).
Introducción
Equí voi esplicar cómo programar pa Ubuntu.
Fae un tiempu entamé con un proyeutu por hobby, al poco entró nos repositorios oficiales d’Ubuntu, y por defeutu en distribuciones tan importantes como Linux Mint. Sigue siendo un hobby, col que disfruto y deprendo asgaya. El mio piquiñín (ya ye como un fíu), esti proyeutu del que vos falo, ye Gufw 🙂
Cuando entamé resultóme complicao saber en que llinguaxe programalu, y les regles que tenía que siguir, polo cual, voi intentar guiate nestos puntos.
La mio eleición foi la que considero agora la meyor pa facer un programa pa Ubuntu: Python + Glade. Si te fixes, Ubuntu lleva preinstalaos munchísimos programes qu’usen esta combinación.
Python ya lu tienes instaláu n’Ubuntu (recomiendote Geany como editor de desendolcu), y Glade ta nos repositorios, asina qu’instálalu con:
sudo apt-get install glade
Agora que ya tenemos tolo que necesitabemos, vamos facer un pequeñu programa d’exemplu, un Minimonitor como’l “Monitor del Sistema” que lleva Ubuntu, pero que sólo nos amose una información: La versión d’Ubuntu que tenemos.
Vamos facelo en programación orientada a oxetos, recomiendote usar MVC (Modelu Vista Controlador), un exemplu de cómo organizar les coses tieneslu en Gufw, aunque ye meyor nun meter MVC agora pa nun lliate más.
Resumiendo, en Glade fadrémos la interface, y con Python desendolcaremos los eventos d’esa interface. La clave del desendolcu de GUIs pa GNU/Linux ye que la terminal de GNU/Linux tien una potencia ablucante, y aprovechámoslo pa unviar comandos a la terminal.
Sí, como lo oyes, una GUI (Graphic User Interface) de xestor de baxada lo que faerá ye invocar al comandu wget na terminal y garrar el resultáu, el Xestor d’anovamientos d’Ubuntu unviará comandos a la terminal de la triba “sudo apt-get….”.
Cómo ves, programar una GUI ye aprobechar la potencia d’aplicaciones de la consola.
Programación
Glade
Primero vamos metenos con Glade:
Glade ye un criador d’interfaces pa GTK, criar una interface ye mui intuitivo, sólo hai un trucu, afita la propiedá “Visible” de la ventana principal a “Sí” (Por defeutu va a “Non” y yo tardé 2 selmanes n’atopar el fallu :S).
Esplicar más equí creo que ye lliar la madexa, lo meyor ye qu’abras Glade (Menú Aplicaciones / Programación / Glade) y xuegues con él. El ficheru tieneslu nel ficheru comprimíu (versión de Glade 3.6.7) qu’uso pa esti exemplu, abrelu y prautica con él.
Remembra tamién especificar “Libglade” como triba de proyeutu.
Python
Vamos a la chicha: Python. Python ye un llinguaxe mui versátil, y pa programación d’interfaces pa Ubuntu adaptase perbien.
Pa ello criamos el ficheru minimonitor.py (versión de Python 2.6.4rc1). El códigu tieneslu nel ficheru comprimíu.
Esplicalo equí diba ser perllargo, asina que comenté muncho’l códigu 🙂 Debiera ser fácil d’atalantar cada instrucción. Recomiendote usar sólo espacios pa tabular. Si amestes espacios y tabuladores, puede dar dalgún fallu al executalu.
Pa executalu, puedes velo equí (tienes que grabar los ficheros a /usr/share/minimonitor y executalos dende ehí):
Tamién puedes executar el códigu en mou debug faciendo esto:
import pdb
pdb.set_trace()
Cómo instalar too
Ya ta fináu’l programa, agora queda saber en qué direutorios poner cada ficheru, y como criar el llanzador nel menú de GNOME.
Los ficheros minimonitor.py y minimonitor.glade dirán nel direutoriu /usr/share/minimonitor
Pal llanzador nel menú de GNOME criamos un ficheru “minimonitor.desktop” nel direutoriu /usr/share/applications con esti conteníu:
[Desktop Entry]
Version=0.0.1
Type=Application
Terminal=false
Exec=minimonitor
Name=Minimonitor
Comment=Allows you to know your system
Comment[ast]=Permitete conocer el to sistema
Icon=/usr/share/icons/hicolor/48x48/apps/invest_applet.png
Categories=System;Settings;
Cómo ves, poniendo Coment[códigu_llingua] podemos especificar la torna pa delles llingües.
Tamién necesitamos criar el ficheru de llanzamientu global (ye’l que llanza’l ficheru anterior), con esti podremos executar na terminal “minimonitor” y ya sal 🙂 pa ello criamos un ficheru nomáu “minimonitor” na carpeta /usr/bin
#!/bin/bash
python /usr/share/minimonitor/minimonitor.py
que lo que fae ye cargar l’interprete python del sistema col ficheru que-y dicimos 😉
Ye importante que’l ficheru .py y el /usr/bin tengan permisos d’execución, pa ello, na terminal:
sudo chmod +x
/usr/share/minimonitor/minimonitor.py /usr/bin/minimonitor
Pa instalalu n’otros ordenadores, si ye tan simple como esti, puedes criar un ficheru comprimíu y descomprimiéndolu como sudo, taría. Pa criar un .deb puedes facelo col Debian Package Maker, diciendo en qué carpeta va cada ficheru (como si fuera a descomprimilu).
Finando
El resultáu final
Equí veis cómo quedó:
Aspeutos a tener en cuenta
- Enxamás camudes un ficheru de configuración que nun seya del to programa.
- Preserva siempre los ficheros nos direutorios adecuaos.
- Les versiones entamen na 0.0.1, y van aumentando en 0.0.2, 0.0.3… Cuando heba una meyora importante o d’estabilidá, saltará a la 0.1.0, etc.
- Cuando nun sepas dalgo, usa Google.
- Baxa y estudia otres aplicaciones, deprenderás munches más coses.
- Fae la interface del glade n’inglés, lluéu tórnase a otres llingües según la que tengas activa n’Ubuntu.
- La to obra sería muncho meyor si la llicencies baxo software llibre 😉 aporta’l to granín a GNU/Linux, pa ello incluyete como autor, y axunta parte de la llicencia nel códigu, y la llicencia completa n’otru ficheru.
- P’albergar el to proyeutu de códigu llibre puedes usar Google Code o Launchpad. Pa la web del proyeutu’l hosting pa proyeutos llibres: TuxFamily.
Referencies
- Una guía de referencia imprescindible.
- El meyor manual de Python ye de llicencia llibre.
- Ye importante que sigas la guía d’usabilidá de GNOME.
- Google Code tien un guetador xenial, de xuro que te saca de dalgún atolladeru.
- Remembra siempre’l Zen de Python ya intenta programar lo meyor posible.
- Un manual perbonu pa programar en Python + Glade. Mui esplicao sobre cómo faer pa que l’aplicación seya tornable.
12 de Ochobre, 2009 - 00:51
😯 ABLUCANTE!!!… buf… porque naide fae les coses tan clares pa temes complexos… milenta gracies Marquinos… bona armaste… como m’enganche python ye lo que me faltaba… agora hai que buscar tiempu pa trastiar… (por cierto punxe lo de lleer más pa que nun quedara tan llarga la portada, desanicialu si quies)
12 de Ochobre, 2009 - 07:34
Gracies Dangerous Piper 🙂
La verdá que ye un tema del que nun hai demasiada información (agora hai un poco más), y como ves nun ye díficil 🙂
Pa cualisquier dulda, equí toi.
14 de Ochobre, 2009 - 13:29
Preparate… ;P