PDA

View Full Version : [ruby e GUI Gtk]


leletop
02-11-2008, 19:02
Ciao ragazzi,
Chiedo anche qui perchè nella sezione programmazione non sanno darmi risposta, magari qui qualche anima buona sa darmi lumi.....
Dunque uso NetBeans IDE 6.1 per programmare in ruby e Glade 3.4.5 per creare l'interfaccia grafica.
Però quando eseguo il comando ruby-glade-create-template il file .rb viene editato ma se lo provo si blocca quando esegue l'ultima riga che è Gtk.main.
Così ho editato questo semplice programma

require 'gtk2'
Gtk.init
window = Gtk::Window.new
window.set_default_size(200, 100)
bottone = Gtk::Button.new('Go')
window.add(bottone)
window.show_all
Gtk.main

Il tutto funziona, ma come faccio a dirgli che voglio il bottone grosso 200 x 30 ?:confused:

e avete idea perchè nn mi funziona se lo importo da glade?
Ho installato tutte le librerie gtk....

nico159
02-11-2008, 23:41
Scusami se mi intrometto senza rispondere alle tue domande, ma c'è un motivo per cui vuoi usare le GTK e non le QT (http://www.darshancomputing.com/qt4-qtruby-tutorial/)? :)

Qua comunque mi sa che siamo OT :P

leletop
03-11-2008, 08:52
mha visto che uso Gnome e Gnome è basato su Gtk mi è sembrato automatica la scelta di Gtk.....

leletop
04-11-2008, 13:07
:help:
Sono sempre arenato qui non riesco a trovare una soluzione, google l'ho già messo sotto sopra ma non trovo nulla :muro: :cry:

greeneye
04-11-2008, 15:22
prova con

bottone.set_size_request(200,30)

leletop
05-11-2008, 12:40
no non funziona :cry:
Grazie comunque :)

greeneye
05-11-2008, 12:44
prova ad indagare il perchè non funziona, la chiamata ridimensiona il widget se è possibile (p.e. se non collide con un altro, esce dalla finestra , ecc....)

dawid999
05-11-2008, 12:56
Ciao ragazzi,
Chiedo anche qui perchè nella sezione programmazione non sanno darmi risposta, magari qui qualche anima buona sa darmi lumi.....
Dunque uso NetBeans IDE 6.1 per programmare in ruby e Glade 3.4.5 per creare l'interfaccia grafica.
Però quando eseguo il comando ruby-glade-create-template il file .rb viene editato ma se lo provo si blocca quando esegue l'ultima riga che è Gtk.main.
Così ho editato questo semplice programma

require 'gtk2'
Gtk.init
window = Gtk::Window.new
window.set_default_size(200, 100)
bottone = Gtk::Button.new('Go')
window.add(bottone)
window.show_all
Gtk.main

Il tutto funziona, ma come faccio a dirgli che voglio il bottone grosso 200 x 30 ?:confused:

e avete idea perchè nn mi funziona se lo importo da glade?
Ho installato tutte le librerie gtk....

la dimensione del bottone dovresti poterla settare da glade,recentmente mi ci stavo dedicando anche io.
puoi postare il codice intero generato da ruby-glade-create-template senza modifiche e l'errore che ti ritorna?

leletop
07-11-2008, 12:43
eccomi il codice che mi crea è questo

#!/usr/bin/env ruby
#
# This file is gererated by ruby-glade-create-template 1.1.4.
#
require 'libglade2'

class GraficaGlade
include GetText

attr :glade

def initialize(path_or_data, root = nil, domain = nil, localedir = nil, flag = GladeXML::FILE)
bindtextdomain(domain, localedir, nil, "UTF-8")
@glade = GladeXML.new(path_or_data, root, domain, localedir, flag) {|handler| method(handler)}

end

def click(widget)
puts "click() is not implemented yet."
end
end

# Main program
if __FILE__ == $0
# Set values as your own application.
PROG_PATH = "grafica.glade"
PROG_NAME = "YOUR_APPLICATION_NAME"
GraficaGlade.new(PROG_PATH, nil, PROG_NAME)
Gtk.main
end

Errori non me ne da l'applicazione sembra essere processata ma l'interfaccia grafica non appare :cry:

dawid999
07-11-2008, 19:48
avevo esattamente lo stesso problema :)
basta che in glade selezioni la finestra principale e setti la proprietà visible=yes

poi funziona tutto :)

leletop
09-11-2008, 14:35
avevo esattamente lo stesso problema :)
basta che in glade selezioni la finestra principale e setti la proprietà visible=yes

poi funziona tutto :)

Sono commosso :cry: \grazie finalmente funzionaaaaaaAAAAAAAAA :D

dawid999
10-11-2008, 18:31
oggi mi sa che provo:
http://wxruby.rubyforge.org/wiki/wiki.pl?ScreenShots

sembra carino :)