2011-06-23 97 views
0

我最近想在我的Fedora 15盒子上安裝GTK的Ruby綁定。我使用yumruby-gtk2,ruby-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

in'window = 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)

創建新的Gtk::Window,這是一個頂級窗口,可以包含其他小部件。

所以你實際上並不需要當你想要一個頂層窗口,指定type但如果你想指定type,那麼你要使用的Gtk::Window::TOPLEVEL常量不Gtk::WINDOW_TOPLEVEL

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

這幾乎耗盡了我對Ruby Gtk綁定的(當前)瞭解,但希望它能讓您朝着正確的方向前進。

+0

非常感謝你! – tekknolagi