所以我有这个程序
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)
然后就可以了。但为什么?
好的,所以我想在我的一些程序中使用Shoes,但我绝对需要的是"浏览..."对话框,以便用户可以在本地浏览目录/文件.我怎样才能做到这一点?