我最近想在我的Fedora 15盒子上安装GTK的Ruby绑定。我用yum
安装了所有的包(ruby-gtk2
、ruby-gtk2-devel
等等),当我尝试用Ruby做一个简单的Hello World GUI应用程序时,我得到了一个NameError。这是代码:
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
首先,您想要引入gtk2
而不是gtk
,因此将您的require
更改为:
require 'gtk2'
然后,从精细手册:
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)
这几乎耗尽了我(目前)对RubyGtk绑定的了解,但希望它能让你朝着正确的方向前进。