Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fedora上的ruby gtk安装问题_Ruby_User Interface_Gtk - Fatal编程技术网

Fedora上的ruby gtk安装问题

Fedora上的ruby gtk安装问题,ruby,user-interface,gtk,Ruby,User Interface,Gtk,我最近想在我的Fedora15机器上安装Ruby绑定。我用yum(ruby-gtk2,ruby-gtk2-devel,诸如此类)安装了所有的软件包,当我尝试在ruby中执行一个简单的Hello-World GUI应用程序时,出现了一个名称错误。代码如下: require 'gtk' window = Gtk::Window.new(Gtk::WINDOW_TOPLEVEL) button = Gtk::Button.new("Hello World") window.set_title("H

我最近想在我的Fedora15机器上安装Ruby绑定。我用
yum
ruby-gtk2
ruby-gtk2-devel
,诸如此类)安装了所有的软件包,当我尝试在ruby中执行一个简单的Hello-World GUI应用程序时,出现了一个名称错误。代码如下:

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
,它是一个顶级窗口,可以包含其他小部件

因此,当需要顶级窗口时,实际上不需要指定
类型
,但如果要指定
类型
,则需要使用
Gtk::window::toplevel
常量而不是
Gtk::window\u toplevel

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

这几乎耗尽了我(目前)对Ruby Gtk绑定的知识,但希望它能让你朝着正确的方向前进。

window=Gtk::window.new
…我仍然得到这个
Gtk.rb:3:未初始化常量Gtk::window\u顶级(NameError)
不幸的是