Ruby/Tk TkVariableの使用
ウィジェットで変化する値を使用する場合にはTkVariabeを使用する。TkVariableの値が変化すると、その変数を参照しているウィジェット上の表示が即時変化する。
TkVariable#new_hashとするとHashとして使用できる。この場合にはウィジェット内で使用する場合には、TkVariable#ref(key)とする。
#coding: Windows-31J require "tk" root = TkRoot.new do title 'TkVariable Test' geometry '300x150+100+100' # 親ウィンドウのサイズと位置 end d0 = TkLabel.new(root, text:'下段の入力文字が上段に即時反映される') d0.pack v1 = TkVariable.new('Label1') d1 = TkLabel.new(root) do textvariable v1 pack(anchor: :w) # 表示を左寄せにする(w: west) end e1 = TkEntry.new(root) do textvariable v1 pack(fill: :x) end TkLabel.new.pack # TkVariableをHashとして使用 v2 = TkVariable.new_hash(str: 'Label2') # HashへのアクセスはTkVariable#ref(key)を使用する d2 = TkLabel.new(root) do textvariable v2.ref(:str) pack(anchor: :w) end e2 = TkEntry.new(root) do textvariable v2.ref(:str) pack(fill: :x) end Tk.mainloop