Ruby TK如何接收用户的输入?
Ruby TK how to receive input from user?
我是 Ruby 的新手,我希望收到具有 Ruby TK 的用户的意见。网上关于这方面的资料太少了。所以我在这里寻找解决方案。以下是我目前使用的方法。
TkSpinbox.new(left) do
to 100
from 1
value = TkVariable.new()
increment value += 1
command (proc{
puts value
})
pack("side" => "bottom", "padx"=> "50", "pady"=> "54")
end
我不知道如何获取旋转框内的值并将其 return 到另一个地方。这是 GUI 的屏幕截图。
您可以对该代码片段进行一些小改动,以便您正确访问旋转框值:
increment
方法接受一个参数,即每次单击按钮时值增加的量。因此,您可以将 increment value += 1
替换为 increment 1
.
您不需要 value = TkVariable.new()
行,因为 TkSpinbox
会跟踪其值本身。 (如果你确实想设置一个初始值,你可以使用例如 self.value = 10
。)
进行这些更改后,这是最终的代码片段:
TkSpinbox.new(left) do
to 100
from 1
increment 1
# Equivalent to your proc({...}) usage here, but this is better Ruby style
command do
puts value
end
pack("side" => "bottom", "padx"=> "50", "pady"=> "54")
end
这是您多次单击递增按钮后的样子:
要使用按钮等其他控件的值,您可以将 TkSpinbox
分配给一个变量并从另一个 command
块访问它的值:
# Assign spinbox to a variable named `spinbox`
spinbox = TkSpinbox.new(left) do
to 100
from 1
increment 1
command do
puts value
end
pack("side" => "bottom", "padx"=> "50", "pady"=> "54")
end
TkButton.new(left) do
text "Do something with the value"
command do
# Now `spinbox` is usable from other controls
# (The value may be a string, so we use .to_i to convert to an integer)
puts spinbox.value.to_i * 100
end
pack("side" => "top")
end
我是 Ruby 的新手,我希望收到具有 Ruby TK 的用户的意见。网上关于这方面的资料太少了。所以我在这里寻找解决方案。以下是我目前使用的方法。
TkSpinbox.new(left) do
to 100
from 1
value = TkVariable.new()
increment value += 1
command (proc{
puts value
})
pack("side" => "bottom", "padx"=> "50", "pady"=> "54")
end
我不知道如何获取旋转框内的值并将其 return 到另一个地方。这是 GUI 的屏幕截图。
您可以对该代码片段进行一些小改动,以便您正确访问旋转框值:
increment
方法接受一个参数,即每次单击按钮时值增加的量。因此,您可以将increment value += 1
替换为increment 1
.您不需要
value = TkVariable.new()
行,因为TkSpinbox
会跟踪其值本身。 (如果你确实想设置一个初始值,你可以使用例如self.value = 10
。)
进行这些更改后,这是最终的代码片段:
TkSpinbox.new(left) do
to 100
from 1
increment 1
# Equivalent to your proc({...}) usage here, but this is better Ruby style
command do
puts value
end
pack("side" => "bottom", "padx"=> "50", "pady"=> "54")
end
这是您多次单击递增按钮后的样子:
要使用按钮等其他控件的值,您可以将 TkSpinbox
分配给一个变量并从另一个 command
块访问它的值:
# Assign spinbox to a variable named `spinbox`
spinbox = TkSpinbox.new(left) do
to 100
from 1
increment 1
command do
puts value
end
pack("side" => "bottom", "padx"=> "50", "pady"=> "54")
end
TkButton.new(left) do
text "Do something with the value"
command do
# Now `spinbox` is usable from other controls
# (The value may be a string, so we use .to_i to convert to an integer)
puts spinbox.value.to_i * 100
end
pack("side" => "top")
end