Haciendo uso de Interfaz Gráfica en Python [Wxpython]

WxPython-logoComo ya es sabido, Python es uno de los lenguajes que más está llamando la atencion de los programadores hoy en día, esto debido ya que el potencial de este lenguaje además de las criticas super buenas que posee en la comunidad de programadores, levanta la curiosidad de aprenderlo, pero qué pasa cuando queremos realizar algo con interfaz gráfica, asi como Java lo hace junto con NetBeans, tener un entorno de desarrollo similar y hacer aplicaciones usando la potencia de python y la ayuda de una interfaz.

 

Y la pregunta es ¿Puedo hacer una aplicación en python y añadirle una interfaz gráfica?, y la respuesra es Sí, hay herramientas para escoger, entre ellas tenemos;
En esta ocación mostraremos a WxPython, una gran herramienta para el desarrollo de aplicaciones con interfaz gráfica, su documentación es bastante amplia. Según Wikipedia;

 

“wxPython es un binding de la biblioteca gráfica wxWidgets para el lenguaje de programación Python. La biblioteca wxWidgets se caracteriza por ser multiplataforma, por lo que su uso junto a Python permite el desarrollo rápido de aplicaciones gráficas multiplataforma.

Siendo un binding, wxPython usa la misma licencia de software libre que wxWidgets (LGPL) —la cual es una licencia aprobada por la Fundación del Software Libre y la Open Source Initiative.”

 

Gracias a su licenciamiento su uso se facilita aún mas, para poder instalarlo se realiza de la siguiente forma; primero tenemos que acceder como root a nuestra terminal. Posteriormente ingresamos el siguiente comando para actualizar nuestros repositorios:

 

apt-get update
Luego de haber realizado lo anterior, digitamos, (antes de hacer esto tenemos que estar seguros que tenemos instalado python en nuestro ordenador);

 

apt-get install python-wxgtk2.8
Ya con eso tenemos instalado wxpython, para realizar la prueba correspondiente creamos un archivo llamado:

 

hola_mundo_wxpython.py
Y dentro de el digitamos lo siguiente;

 

#!/usr/bin/env python

import wx

class TestFrame(wx.Frame):
    def __init__(self, parent, ID, title):
        wx.Frame.__init__(self, parent, wx.ID_ANY, title, pos=(0, 0), size=(320, 240))
        panel = wx.Panel(self, wx.ID_ANY)
        text = wx.StaticText(panel, wx.ID_ANY, "Hello, World!", wx.Point(10, 5), wx.Size(-1, -1))

class TestApp(wx.App):
    def OnInit(self):
        frame = TestFrame(None, wx.ID_ANY, "Hello, world!")
        self.SetTopWindow(frame)
        frame.Show(True)
        return True

if __name__ == '__main__':
    app = TestApp()
    app.MainLoop()
Para poder ejecutarlo nos ubicamos en el lugar en dónde lo hemos creado, y en terminal hacemos lo siguiente;

 

python hola_mundo_wxpython.py
hello_word_wxpython

hello_word_wxpython.py luego de ejecutarlo

Y es asi como hemos ejecutado nuestra primer interfaz gráfica haciendo uso de Wxpython, la capacidad de esta herramienta es muy grande, permitiendonos hacer interfaces con grados de complejidad bastantes altos, todo dependiendo de nuestras necesidades, pero ahora, la siguiente pregunta es, ¿Hay alguna herramienta que me permita diseñar mis interfaces un poco más rapido y con un asistente asi como lo hace NetBeans?, y Sí la hay, y se llama WxFormBuilder,

 

wxformbuilder-7

Para poder instarlo, primero tenemos que descargarlo del siguiente lugar.

WxForBuilder

Luego de descargarlo entramos a la terminal, y nos ubicamos en el lugar que le asignamos que se descargara, habitualmente en la carpeta de Descargas, luego de eso, tenemos que descomprimir dicho archivo .zip, para ello digitamos en terminal;

 

unzip wxFormBuilder_v3.5.0-beta-source.zip
Ahora tenemos que instalar ciertar librerias para que wxFormBuilder nos funcione en nuestro ordenador;

 

apt-get install libwxgtk3.0-0 libwxgtk3.0-dev libwxgtk-media3.0-dev
Luego de descomprimirlo e instalar las librerias requeridas entramos a la carpeta ‘source’ que es la que estaba dentro del archivo .zip, dentro de esa carpeta listamos todos los archivos con el comando;

 

ls
Y observaremos que dentro hay un archivo llamado;

 

create_build_files4.sh
Tenemos que ejecutar ese archivo para que compile lo necesario para hacer uso de wxFormBuilder, esto se realiza con el comando;

 

sh create_build_files4.sh
Ahora tenemos que compilar a wxformbuilder, para ello simpre dentro de la misma carpeta recién extraida, nos dirigimos a la siguiente dirección y digitamos lo siguiente;

 

cd build/3.0/gmake
Solo resta compilar, para poder compilar en GNU/Linux tenemos que tener instalado el paquete “build-essential”, asumiendo que ya lo tenemos instalado, procedemos a compilar;

 

make config=release
Ahora luego de haber compilado, tenemos que ir hacia la carpeta llamada ‘output’;

 

cd ../../../output/
Y al hacer un ls notaremos que hay mas carpetas dentro de el, pero nosotros entraremos a la carpeta llamada ‘bin’, que es ahi en donde se a creado un ejecutable para poder usar wxFormBuilder, luego de haber ejecutado el archivo .sh

 

cd bin
Y al listar lo que hay dentro de esa carpeta notaremos que hay un ejecutable llamado “wxformbuilder”, y ese es el archivo con el que abriremos wxFormBuilder. Pero aún no está agregado a nuestro listado de aplicaciones, para ello tenemos que agregar ese ejecutable a nuestro listado, basta con hacer una busqueda rápida para saber como agregar aplicaciones al menú de nuestro gestor de ventanas, ya sea GNOME, KDE u otro. Recordar que el ejecutable que agregaremos al listado de aplicaciones es el que está dentro del la carpeta ‘bin’, y que debe tener los permisos necesarios para ejecutarse.

 

wxform_builder

WxFormBuilder

Suponiendo que todo el proceso de instalacion de WxPython y añadir wxFormBuilder a nuestro sistema, podemos empezar a diseñar nuestras propias interfaces gráficas para nuestras aplicaciones de escritorio, vale la pena recalcar que wxFormBuilder lo único que hace es devolvernos el codigo python con la estructura de wxPython para la creación de la gráifca, y nosotros como programadores tenemos que adaptarlo a nuestras necesidades, tales como; crear nuestras funciones, enlazar funciones con eventos de los componetes de wxPython como los botones, etc.
Debido a que esta entrada no trata del uso de wxFormBuilder, y su funcionamiento no se explicará mas en detalle, pero he aqui una captura de lo que se puede diseñar con dicha herramienta.

 

captura_wxpytohn

Diseño de una interfaz para el control de usuarios

Ahora no hay excusas para desarrollar aplicaciones de escritorio con python, esperando te animes a darle una optunidad a estas grandes herramientas 😀
Referencias:
Share on FacebookTweet about this on TwitterShare on Google+

Deja un comentario