Primero tener instalada la gema así:
install gem gtk3 --> En Windows
sudo install gem gtk3 --> En Linux
'''
ZetCode Ruby GTK tutorial
In this program, we lay out widgets
using absolute positioning.
Author: Jan Bodnar
Website: www.zetcode.com
Last modified: May 2015
por David Botía.
'''
# encoding: UTF-8
require 'gtk3'
$ruta=Dir.pwd
puts "Elije la resolución de la ventana de entre éstas:"
puts "1.- 150x150"
puts "2.- 320x240"
puts "3.- 640x480"
puts "4.- 1024x768"
puts "5.- Escribe cualquier otro acrácter para salir."
puts
puts "Escribe 1,2,3,4 ó 5"
puts
valor=gets.chomp.to_s
case valor
when 1.to_s
$v=150; $h=150
when 2.to_s
$v=320; $h=240
when 3.to_s
$v=640; $h=480
when 4.to_s
$v=1024; $h=768
else
puts "Éstos son las tres imágenes que hay para mostrar"
$v=1; $h=1
puts "adios"
end
class RubyApp < Gtk::Window
def initialize
super
init_ui
end
def init_ui
# La siguiente línea puede ser obviada y el fondo sería el del sistema.
override_background_color :normal, Gdk::RGBA::new(0.4, 0.2, 0.2, 1)
begin
bardejov = Gdk::Pixbuf.new :file => $ruta+"/bardejov.jpg"
rotunda = Gdk::Pixbuf.new :file => $ruta+"/rotunda.jpg"
mincol = Gdk::Pixbuf.new :file => $ruta+"/mincol.jpg"
rescue IOError => e
puts e
puts "No se pueden cargar la imágenes"
exit
end
image1 = Gtk::Image.new :pixbuf => bardejov
image2 = Gtk::Image.new :pixbuf => rotunda
image3 = Gtk::Image.new :pixbuf => mincol
fixed = Gtk::Fixed.new
# posición de la primera fila y columna de cada foto
fixed.put image1, 10, 10
fixed.put image2, 10, 10
fixed.put image3, 10, 10
add fixed
set_title "Ventana 1"
signal_connect "destroy" do # Éste destroy no se puede cambiar
Gtk.main_quit
end
set_default_size $v, $h
window_position = :center
show_all
end
end
Gtk.init
window = RubyApp.new
Gtk.main