Ruby - 未知方法初始化

Ruby - Unknown method init

我学到了一些东西 ruby 今天我尝试从 gtk3 开始构建一个 GUI。 我找到了这个教程

http://zetcode.com/gui/rubygtk/introduction/

然后我将代码复制到 运行 我终端中的脚本。

sudo ruby gui.rb

但我只得到这个错误代码。

gui.rb:34:in <main>': undefined methodinit' for Gtk:Module (NoMethodError)

我已经使用以下命令安装了 gtk3 gem。

sudo gem install gtk3

在我尝试将 gtk 与 .. 一起使用之前

sudo gem install gtk2

哪里出错了? 我已经安装成功gtk.

该错误意味着您没有在程序的第 34 行定义您尝试 运行 的方法..

如果你想在 Ruby 中使用 GUI 做一些事情,我建议你改用 Shoes,Shoes 非常简单,而且有很多很棒的教程。

这是 link 鞋子:http://shoesrb.com/

您不必再使用 GTK.init 方法。


根据您正在学习的教程,只需保留以下代码即可:

#!/usr/bin/ruby

'''
ZetCode Ruby GTK tutorial

This program centers a window on 
the screen.

Author: Jan Bodnar
Website: www.zetcode.com
Last modified: May 2014
'''

require 'gtk3'

class RubyApp < Gtk::Window

    def initialize
        super

        set_title "Center"
        signal_connect "destroy" do 
            Gtk.main_quit 
        end

        set_default_size 300, 200

        set_window_position Gtk::Window::Position::CENTER

        show
    end
end

# Gtk.init
    window = RubyApp.new
Gtk.main

此外,您不应该使用 sudo 来安装您的 gem,因此您可以 运行 您的脚本而无需成为 root。 运行 sudo gem 会将您的 gem 安装到您的根目录中。

我目前正在使用旧代码调试类似问题。 gtk gem 的 3.0.x 系列有 (a) 没有 init 方法和 (b) 我找不到最新的文档,... :-(

要返回适用于该代码的 gtk3 版本,请尝试

gem install gtk --version "~> 2.2"

或者在你的gem规范中使用~> 2.2,如果你使用一个