小编KTa*_*mas的帖子

Ruby + Tk命令绑定-范围问题?

所以我有这个程序

require 'tk'
class Foo
  def my_fancy_function
    puts "hello, world!"
  end

  def initialize
    @root = TkRoot.new{title "Hello, world!"}
    frame = TkFrame.new
    my_fancy_button = TkButton.new(frame) do
      text "Press meee"
      command {my_fancy_function}
      pack
    end
    frame.pack
    Tk.mainloop
  end
end

bar = Foo.new
Run Code Online (Sandbox Code Playgroud)

但是,如果我按下按钮,则会出现“ NameError:#<TkButton:...的未定义局部变量或方法my_fancy_function”。

我很确定我缺少一些与范围有关的琐事...如何正确地将该命令绑定到按钮?

编辑:好的,如果我将my_fancy_button块更改为参数,即

my_fancy_button = TkButton.new(frame, :text => "Press meee", :command => proc{my_fancy_function}).pack
Run Code Online (Sandbox Code Playgroud)

然后就可以了。但为什么?

ruby scope tk-toolkit

4
推荐指数
1
解决办法
977
查看次数

如何在Shoes中访问"浏览..."对话框?

好的,所以我想在我的一些程序中使用Shoes,但我绝对需要的是"浏览..."对话框,以便用户可以在本地浏览目录/文件.我怎样才能做到这一点?

ruby shoes

1
推荐指数
1
解决办法
1220
查看次数

标签 统计

ruby ×2

scope ×1

shoes ×1

tk-toolkit ×1