2011-06-23 11 views
0

最近、Fedora 15のボックスにGTKのRubyバインディングをインストールしたいと思っていました。 yumruby-gtk2ruby-gtk2-devel、すべて)のパッケージをインストールしましたが、Rubyで単純なHello World GUIアプリケーションを実行しようとするとNameErrorが発生します。すべてのFedoraでのruby gtkインストールの問題

require 'gtk' 

window = Gtk::Window.new(Gtk::WINDOW_TOPLEVEL) 
button = Gtk::Button.new("Hello World") 

window.set_title("Hello Ruby") 
window.border_width(10) 

# Connect the button to a callback. 
button.signal_connect('clicked') { puts "Hello Ruby" } 

# Connect the signals 'delete_event' and 'destroy' 
window.signal_connect('delete_event') { 
    puts "delete_event received" 
    false 
} 
window.signal_connect('destroy') { 
    puts "destroy event received" 
    Gtk.main_quit 
} 

window.add button 
window.show_all 
Gtk.main 
+0

ウィンドウ 'Gtk :: Window.new' ... – tekknolagi

+0

まだ' gtk.rb:3:初期化されていない定数Gtk :: WINDOW_TOPLEVEL(NameError) '残念ながら – tekknolagi

答えて

1

まず、あなたがgtk2ないgtkに引っ張るしたいので、これまでごrequireを変更します:

require 'gtk2' 

その後、fine manualから:

Gtk::Window.new(type = Gtk::Window::TOPLEVEL)ここではコードです

新しいを作成します。は、他のウィジェットを含むことができるトップレベルウィンドウです。

だから、実際にはトップレベルのウィンドウをしたいときtypeを指定する必要はありませんが、あなたはtypeを指定したい場合、あなたはGtk::Window::TOPLEVEL定数を使用したくないGtk::WINDOW_TOPLEVEL

window = Gtk::Window.new(Gtk::Window::TOP_LEVEL) 

Ruby Gtkのバインディングに関する私の(現在の)知識はかなり枯渇していますが、うまくいけば正しい方向に動かせるでしょう。

+0

ありがとう! – tekknolagi