Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Programando con Ruby y GTK+ (y II)

Documentación
Por osoh
departamento enamorados-de-ruby , Sección Desarrolladores
Puesto a las Tue Oct 21st, 2003 at 01:52:25 AM CET

He aquí la segunda parte de la introducción a la programación con Ruby y GTK+ (usando libglade2). Después del primer artículo, habíamos conseguido una interfaz que, simplemente, no hacía nada cuando se interactuaba con ella. Si recuerdan, ni siquiera se podía salir de la aplicación.

Ahora, como es de esperar, vamos a añadirle algo de funcionalidad.

 


Programando las acciones

Estamos ya muy cerca de concluir con este ejemplo. Tan sólo nos falta programar las acciones de cada uno de los cuatro botones. Aunque se trata de algo muy sencillo, no está de más echarle un vistazo a los fundamentos a la teoría de señales de GTK2.

En este caso, y aunque podríamos editar el fichero .glade, utilizaremos Glade de nuevo. Así, abrimos nuestro proyecto y seleccionamos, por ejemplo, el botón botonSalir. Editamos sus propiedades y añadimos un manejador -al que llamaremos quit para la señal clicked. Este manejador se encargará de terminar la aplicación cuando se pulse el botón.

Ya le hemos "dicho" a la interfaz que cuando se pulse este botón, invoque al método quit. Así que ahora tenemos que implementarlo. Como es de suponer, editamos nuevamente el código Ruby y creamos un nuevo método -llamado quit-- para la clase CalculadoraSimplona:


        def quit
          Gtk.main_quit # Termina el bucle principal de GTK.
        end

Ahora volvemos a ejecutar la aplicación... ¡y ya podemos salir de ella usando el botón salir!

Bueno, ya "sólo" resta programas acciones para los otros cuatro botones. Como es de suponer, se sigue el mismo procedimiento que en el caso anterior pero, obviamente, el código Ruby será diferente. Así editamos las propiedades del botón de sumar, y a la señal clicked le asociamos un manejador suma. A continuación escribimos un método suma:


        def suma
          # Se asigna a los operandos los valores de los cuadros de texto.
          @laCalculadora.a= @cuadroA.text.to_i
          @laCalculadora.b= @cuadroB.text.to_i
          # Se suman los números y se muestra el resultado
          @cuadroResultado.set_text(@laCalculadora.sumar)
        end

Guardamos todos los cambios, volvemos a ejecutar y ya debería funcionar la suma. Metemos dos numeros en los dos primeros recuadros, pulsamos el botón de suma y ¡voilà!

Si se ha seguido la explicación hasta aquí, implementar el resto de las operaciones no debería presentar ningún tipo de problema. Así que se lo dejo como "ejercicio" ;-)

Y, en principio, eso es todo. Espero que lo hayan disfrutado y les sea de utilidad. Como colofón, les pongo el código Ruby desarrollado en estos dos artículos, para que tengan una visión más global.

Gracias por aguantarme ;-)



calculadora.rb


require 'libglade2'

class CalculadoraSimplona
  TITLE = "Calculadora Simplona"
  NAME = "CalculadoraSimplona"
  VERSION = "1.0"

  def initialize(path)
    @glade = GladeXML.new(path) {|handler| method(handler)}
    @cuadroA = @glade.get_widget("cuadroA")
    @cuadroB = @glade.get_widget("cuadroB")
    @cuadroResultado = @glade.get_widget("cuadroResultado")
    @laCalculadora = Calculadora.new
  end

  def quit
    Gtk.main_quit
  end

  def suma
    @laCalculadora.a= @cuadroA.text.to_i
    @laCalculadora.b= @cuadroB.text.to_i
    @cuadroResultado.set_text(@laCalculadora.sumar)
  end
end

class Calculadora
  attr_writer :a, :b

  def sumar
    @a + @b
  end



  def restar

    @a - @b
  end

  def multiplicar
    @a * @b
  end
  
  def dividir
    @a / @b
  end
end

Gtk.init
CalculadoraSimplona.new("calculadora.glade")
Gtk.main
< Lanzada mandrake 9.2 (8 comments) | Extremadura y Small-Land - LinEx y Squeak (0 comments) >
Enlaces Relacionados
· teoría de señales de GTK2
· More on Documentación
· Also by osoh

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Programando con Ruby y GTK+ (y II) | 0 comentarios ( temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda