我是 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
我不知道如何獲取旋轉框內的值并將其回傳到另一個地方。這是 GUI 的螢屏截圖。

uj5u.com熱心網友回復:
您可以對該代碼片段進行一些小的更改,以便您正確訪問 spinbox 值:
該
increment方法接受一個引數,即每次單擊按鈕時增加值的量。所以你可以increment value = 1用 just替換increment 1。您不需要該
value = TkVariable.new()行,因為它TkSpinbox會跟蹤其值本身。(如果你確實想設定一個初始值,你可以使用 egself.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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/348322.html
