Ave populus
ho questo codice:
codice:
require 'gtk2'
Gtk.init

class Operazioni
	add = Proc.new do
		n1 = (n1.get_text).to_i
		n2 = (n2.get_text).to_i
		label.set_text("Il risultato e': 
" + (n1+n2).to_s)
	end
	
	sub = Proc.new do
		n1 = (n1.get_text).to_i
		n2 = (n2.get_text).to_i
		label.set_text("Il risultato e': 
" + (n1-n2).to_s)
	end
	
	mlt = Proc.new do
		n1 = (n1.get_text).to_i
		n2 = (n2.get_text).to_i
		label.set_text("Il risultato e': 
" + (n1*n2).to_s)
	end
	
	div = Proc.new do
		n1 = (n1.get_text).to_i
		n2 = (n2.get_text).to_i
		if n2 != 0
			label.set_text("Il risultato e': 
" + (n1/n2).to_s)
		else
			label.set_text("Errore di 
divisione per zero")
		end
	end
end

@box = Gtk::VBox.new(false, 5)

title = Gtk::Label.new("")
title.set_markup("Scegli l'operazione:\n1) +		2) 
-		\n3) *		4) /		")
txt = Gtk::Entry.new()
n1 = Gtk::Entry.new()
n2 = Gtk::Entry.new()
button = Gtk::Button.new(Gtk::Stock::OK)
label = Gtk::Label.new("")
button.signal_connect("clicked") {
	str = txt.get_text()
	if str == '1'
		add.call
	elsif str == '2'
		sub.call
	elsif str == '3'
		mlt.call
	elsif str == '4'
		div.call
	else
		label.set_text("Hai immesso un carattere 
non valido o non riconosciuto.")
	end
}

@box << title << txt << n1 << n2 << button << label 

window = Gtk::Window.new
window.signal_connect("delete_event") {
	puts "delete event occurred"
	false
}

window.signal_connect("destroy") {
	puts "destroy event occurred"
	Gtk.main_quit
}

window.border_width = 10
window.add(@box)
window.show_all

Gtk.main
ma quando lo eseguo dà questo errore:
d:/gui.rb:64: undefined method `get_text' for <Gtk::Entry:02A737C0 ptr=0305076
0> (NoMethodError)
from d:/toki.rb:63:in `call'
from d:/toki.rb:95:in `main'
from d:/toki.rb:95
che può essere
tra l'altro se nell'evento clicked del button non metto alcun codica, funziona perfettamente.