4.3 Aplicaciones GUI

Debemos por supuesto conocer el lenguaje de programación Ruby (muy orientado a objetos) y además las librerías que nos permiten realizar aplicaciones de escritorio visuales, a continuación paso a nombrar las más conocidas:

Ruby GTK
Shoes
FxRuby
Zenity
VisualRuby
QtRuby
SharedDevelop


Instalación de GTK


La instalación es bien sencilla, simplemente tenemos que introducir en el terminal o CMD la gema que deseamos instalar en nuestro caso GTK2.

gem install gtk2
Simple y sencillo como cualquier otra gema del mundo Ruby.


Conceptos básicos

Vamos a realizar una pequeña aplicación paso a paso y explicando el significado de cada uno de las líneas de código que implementemos. En primer lugar abre tu editor preferido que vamos ‘al lío!’. En nuestra primera línea poco que comentar, simplemente incorporamos la librería GTK, y en la segunda línea llamamos a las funciones necesarias para hacer funcionar las herramientas gráficas con GTK.init.
require 'gtk2'
GTK.init

Llegados a este punto podemos generar nuestra primera ventana, en definitiva es donde iremos incorporando todo lo elementos necesarios para realizar nuestro programa. En primer lugar creamos una instancia de la ventana gráfica y a el objeto “ventana” vamos llamando métodos o atributos para asignarles los valores que deseamos, en el ejemplo le indicamos el nombre de la ventana creada, tamaño y la posición de esta. Podemos ver todos los atributos en la documentación de esta aquí

ventana = Gtk::Window.new
ventana.set_title "Mi primera ventana"
ventana.set_default_size 500, 500
ventana.set_window_position Gtk::Window::Position::CENTER
ventana.show
Gtk.main

La penúltima línea “ventana.show” es la más importante su función es mostrar la ventana por pantalla, si llamar a ella no veríamos el resultado del código.

En la última línea tenemos “gtk.main”, llamando a la función principal y generando un bucle hasta que en el código se encuentre “gtk.main_quit” y salga de nuestro programa. En nuestro programa carecemos del código para salir de la aplicación.

Si ejecutamos nuestro primer programa, te mostrará una ventana en el centro de la pantalla, con el tamaño y título que le hemos asignado(como no hemos introducido el código para que el programa salga automáticamente, tendremos que realízarlo con la combinación de teclas Ctrl+C en nuestro terminal). Para ejecutar un programa desde CMD o terminal tienes que realizarlo con el comando ruby <nombre_del_programa.rb>.

Mi primer botón con GTK

Ahora que sería lo siguiente…. añadir elementos a una ventana tan vacía, y ese será nuestro primer botón.

boton = Gtk::Button.new "Mi primer boton"
ventana.add(boton)
boton.show
Como vemos en la imagen queda un botón un poco grande, además de cometer errores ortográficos, este segundo lo podemos corregir introduciendo en la primera línea el siguiente código
#encoding: utf-8

Pero el segundo problema es más complejo de solucionar y hace falta conocer el sistema de paneles o grid de la librería visual y no son pocos, Aunque hemos centrado la explicación en líneas simple una tras otras, es mejor enfocarlas con las propiedades de los lenguajes orientados a objetos, que sería utilizando clases, herencia y todo nuestro conocimiento en realizar planteamientos correctos. Paso a detallar un ejemplo simple de como estructurar nuestra aplicación con gtk en Ruby orientado a objetos..

require 'gtk2'

class RubyApp < Gtk::Window

def initialize
super                                                  #Llama al método inicializador de la clase padre

inicializar_ventana                                     #Método donde tenemos todo el código de nuestra aplicación
end

def inicializar_ventana

set_title "Mi primera ventana"                          #Nombre de la ventana
set_default_size 500, 500                               #Tamaño de la ventana
set_window_position Gtk::Window::Position::CENTER       #Posición de la ventana
boton = Gtk::Button.new "Mi primer botón"               #Crear botón

add(boton)                                              #Añadir botón a la ventana

show_all                                                #Mostrar todos los elementos generados
end
end

Gtk.init
window = RubyApp.new
Gtk.main

Eventos del botón

Además y por último vamos introducir un ejemplo sencillo para la llamada de eventos, como por ejemplo cuando un usuario realice la pulsación del botón “Mi primera ventana”.

boton.signal_connect "clicked" do
Gtk.main_quit
end
Con el método “signal_connect” y el evento “clicked” entra en nuestro código cuando un usuario realiza la pulsación en el botón y pasa a ejecutar las líneas correspondientes dentro del bloque Ruby.

Como hemos comentado al comienzo de este post, no es la única librería que existe para aplicaciones de entorno gráfico en el lenguaje de programación de Ruby, pero considero que esta es una librería sólida, con buena documentación para aquellos que quieran aventurarse a realizar sus aplicaciones GUI con Ruby.

No hay comentarios:

Publicar un comentario