El siguiente ejemplo muestra el uso del widget Layout en Ruby GTK.
Y como Nobleza obliga debo decir que el ejemplo fue copiado completamente de este sitio.
http://www.pygtk.org/pygtk2tutorial/sec-Layout.html
Solo hice traducciones de los comentarios, en algunos casos los amplié muy poco y el resto es migración de python a ruby.
require 'gtk2' # inicio gtk, es comun olvidarse de esta linea. Gtk.init # creo una ventana "top level", con titulo y de 300x300 window = Gtk::Window.new(Gtk::Window::TOPLEVEL) window.set_title("Ejemplo de Layout") window.set_default_size(300, 300) #defino el método para cerrar la ventana window.signal_connect( "delete_event" ) { Gtk.main_quit } # creo una tabla y la pongo en la ventana table = Gtk::Table.new(2, 2, false) window.add(table) # creo el layout y lo pongo en la tabla # se debe notar que el layout está en la primer celda de la tabla layout = Gtk::Layout.new(nil, nil) layout.set_size(600, 600) table.attach(layout, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 0, 0) # creo el scrollbar vertical y lo pongo en la segunda celda de la primera fila vScrollbar = Gtk::VScrollbar.new(nil) table.attach(vScrollbar, 1, 2, 0, 1, Gtk::FILL|Gtk::SHRINK, Gtk::FILL|Gtk::SHRINK, 0, 0) # creo el scrollbar horizontal y lo pongo en la primer celda de la segunda fila hScrollbar = Gtk::HScrollbar.new(nil) table.attach(hScrollbar, 0, 1, 1, 2, Gtk::FILL|Gtk::SHRINK, Gtk::FILL|Gtk::SHRINK, 0, 0) # seteo los ajustes de la scrollbar vertical vAdjust = layout.vadjustment vScrollbar.set_adjustment(vAdjust) # seteo los ajustes de la scrollbar horizontal hAdjust = layout.hadjustment hScrollbar.set_adjustment(hAdjust) #hAdjust = Gtk::Adjustment.new(5, 1, 10, 1, 0, 0) # creo tres botones y los pongo en el Layout button = Gtk::Button.new("Clic") button.signal_connect( "button_press_event", Gdk::Event::BUTTON_PRESS ) { print "Clic\n" } layout.put(button, 0, 0) button = Gtk::Button.new("Clic") button.signal_connect( "button_press_event", Gdk::Event::BUTTON_PRESS ) { print "Clic\n" } layout.put(button, 100, 0) button = Gtk::Button.new("Clic") button.signal_connect( "button_press_event", Gdk::Event::BUTTON_PRESS ) { print "Clic\n" } layout.put(button, 200, 0) #muestro todo lo que puse en la ventana window.show_all #run! Gtk.main