Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > tk/variableライブラリ > TkVariableクラス
class TkVariable
クラスの継承リスト: TkVariable
< Tk
< TkCore
< TkComm
< TkUtil
< TkEvent
< Comparable
< Object
< Kernel
< BasicObject
extend: TkCore
Abstract
Tclの変数をアクセスするためのクラスです。 ((-Tclの配列としての振る舞いは仕様が不安定のようです-))
require "tk"
p TkVariable.new(0).value # => "0"
p TkVariable.new(1.2).value # => "1.2"
p TkVariable.new(["a", "b"]).value # => {"0"=>"a", "1"=>"b"}
p TkVariable.new(1=>"a", 2=>"b").value # => {"1"=>"a", "2"=>"b"}
特異メソッド
callback(args)-
TkVariable#traceにより登録されたProcオブジェクトを実行します。 args は、 [TkVariableのインスタンス, "キー", "操作"] である配列です。
new(val="")-
値がvalであるTkVariableオブジェクトを生成します。valが Array または Hash のオブジェクトである場合、生成されたインス タンスは Tclの配列として振る舞います。
new_hash(val = {})
インスタンスメソッド
self % otherself & otherself * otherself ** otherself + otherself - otherself / otherself <=> otherself == other-
値がotherと同じである場合に真です。otherは、 TkVariable, String, Integer, Float, Arrayのいずれかです。
self =~ otherself[index]-
index番目の値を返します。 selfはTclの配列でなければなりません。
self[index] = val-
index番目の要素をvalにします。 selfはTclの配列でなければなりません。
boolbool=set_boolbool_elementbool_type=set_bool_type(val)clearcoerce(other)default_element_value_type(idxs)default_proc(cmd = Proc.new)default_value(val = nil)default_value(val = nil) { .... }default_value=default_value_typedefault_value_type=set_default_value_type(type)element_lappend(idxs, *elems)element_lindex(elem_idxs, idx)element_lget(elem_idxs, idx)element_lget_f(elem_idxs, idx)element_lget_i(elem_idxs, idx)element_lset(elem_idxs, idx, val)list_element(*idxs)element_to_a(*idxs)element_to_f(*idxs)element_to_i(*idxs)element_to_s(*idxs)string_element(*idxs)element_to_sym(*idxs)eventloop_tkwaiteventloop_wait(check_root = false)exist?(*elems)idis_hash?is_scalar?keyslappend(*elems)lindex(idx)lget(idx)lget_f(idx)lget_i(idx)listlist=list_type=set_list_type(val)lset(idx, val)nonzero?numericnumeric=numeric_element(*idxs)set_numeric_type(val)numeric_type=numlistset_numlist(val)numlist=numlist_element(*idxs)set_numlist_type(val)numlist_type=procedureset_procedure(cmd)procedure=procedure_element(*idxs)procedure_type=set_procedure_type(cmd)ref(*idxs)unset(elem=nil)remove(elem=nil)-
値がTcl配列であるとき、elemの値を削除します。
set_bool_elementset_bool_element_type(idxs, val)set_default_element_value_type(idxs, type)set_default_value(val)set_element_value(idxs, val)set_element_value_type(idxs, val)set_list(val)set_list_element(idxs, val)set_numlist_element(idxs, val)set_list_element_type(idxs, val)set_numeric(val)set_numeric_element(idxs, val)set_numeric_element_type(idxs, val)set_numlist_element_type(idxs, val)set_procedure_element(idxs, cmd)set_procedure_element_type(idxs, cmd)string=set_string(val)set_string_element(idxs, val)set_string_element_type(idxs, val)string_type=set_string_type(val)symbol=set_symbol(val)set_symbol_element(idxs, val)set_symbol_element_type(idxs, val)symbol_type=set_symbol_type(val)set_value(val)-
値を val に設定し、self を返します。
set_value_type(val)value_type=set_variable(var)variable=set_variable_element(*idxs)set_variable_element_type(idxs, var)set_variable_type(var)variable_type=set_window(win)window=set_window_element(idxs, win)set_window_element_type(idxs, win)set_window_type(win)window_type=sizestringsymbolto_symsymbol_elementthread_tkwaitthread_wait(check_root = false)tkwait(on_thread = true)to_a-
値を配列(Array)として返します。
to_evalto_f-
値を数値(Float)として返します。
to_i-
値を数値(Fixnum)として返します。(現状のTkVariableは、 Bignumを値にすることはできません)
to_s-
値を文字列(String)として返します。
trace(opts, cmd)-
optsは、"r", "w", "u" のいずれか、またはこれらの組み合わせで、それぞれ 変数が参照、設定、削除 されたときにProcオブジェクト cmd を 呼び出します。2回目以降の呼び出しでは、opts が以前の設定と異なれ ばcmdを再設定します。
cmdは、引数に、self、空配列、"操作" を渡されて呼ばれ ます。"配列のキー" は、変数が配列の場合以外は空文字列です。"操作"は、 "r","w","u" のいずれかです。
require "tk" var = TkVariable.new(0) var.trace "rwu", proc {|arg| puts "callback called with #{arg.inspect}"} p var.value p var.value = 1 p var.unset =>callback called with [<TkVariable: v00000>, [], "r"] "0" callback called with [<TkVariable: v00000>, [], "w"] "1" callback called with [<TkVariable: v00000>, [], "u"] "" trace_callback(elem, op)-
TkVariable#traceにより登録されたProcオブジェクトを引数にself, elem, opを指定して実行します。
require "tk" var = TkVariable.new(0) var.trace "rwu", proc {|arg| puts "callback called with #{arg.inspect}"} var.trace_callback([], "r") trace_element(elem, opts, cmd)trace_vdelete(opts, cmd)-
TkVariable#trace で設定したcmdを削除します。opts が TkVariable#trace で 設定したときと一致しなければ何もしません。
trace_vdelete_for_element(elem, opts, cmd)trace_vinfoundef_defaultupdate(hash)value-
値を返します。selfがTclの配列ならば(Tclの配列は連想配列な ので) Hashとして返します。それ以外では常に文字列を返します。
value=(val)-
値をvalに設定します。
variablevariable_element(*idxs)wait-
値が変化するまで待ちます。
windowwindow_element(*idxs)zero?self | other
定数
TkCommandNamesTkVar_CB_TBL-
コールバック関数を記録するハッシュです。内部で利用しています。
TkVar_ID_TBLTk_VARIABLE_ID-
Tclレベルの変数名をインスタンスに割り当てるために内部で利用されています。
Tk_VARIABLE_IDは、配列ですが0番目の要素しか使われていません。 Rubyにおける定数が値を変更できないためです。
USE_TCLs_SET_VARIABLE_FUNCTIONS