Tcl/Tk 入門
最終更新: [2008/06/18]
English version is where??
|
Tcl/Tk (「ティクル・ティーケイと読みます」)とは X11 上で
簡単に GUI プログラムが作成できるスクリプト言語です.
|
とりあえず使ってみよう
Tk demo 解体新書 (希望中)
- Tk に付属して来るデモプログラムは「こんなことができるのか!」
と驚き喜ぶには適当なのですが,いざ同様のものを作成してみよう
としてもソースがなかなか複雑で希望の動作をどのように実現して
いるのかがわかりにくいのが欠点でしょう.
- 標準のデモをより単純なものに分解することでわかりやすくならな
いかと思っています.そろそろそれができる程にはこちらのスキル
もアップしてきた気がするので.
- X11 上だけでなく,Mac や Windows での実装もあります.
- tcl 言語をウィンドウツールキット tk で拡張したもの.
- PerlTk という perl をベースにした実装もあるそうです.
- 対話性を重視した処理では Expect を使うのがいいかも.
Tcl 編
Hellow World!
puts "Hello, World!"
変数
- 値の代入 set _variable_name_ _value_: ex. set foo 10
- 変数の取消し unset _variable_name_
- 値の参照 $_variable_name_: ex. $foo
- 連想配列 set _assoc_variable_name_(_assoc_tag_) _value_
リスト
- リスト作成 list _values_: ex. set foo [list a b c] ==> puts $foo; a b c
- ネストしたリスト ex. set foo [list a [list b c] d e]==> puts $foo; a {b c} d e
- リスト値の取り出し lindex _list_ _id_num_
- リスト値の取り出し lrange _list_ _start_id_num_ _end_id_num_
- リスト内容の削除 lreplace _list_ _start_id_num_ _end_id_num_
- リスト内容の置換 lreplace _list_ _start_id_num_ _end_id_num_ _list_replace_
- リスト項目数 llength _list_
処理タイミングの制御
- ex. set bar abc ==> puts $bar: abc
- ex. set foo $bar ==> puts $foo: abc
- 展開なし {_block_}: ex. set foo {$bar} ==> puts $foo: $bar
- 先展開 [_block_]: ex. ...
サブルーチン
- proc _sub_proc_name_ {_variable_list_} {_body_block_}
- 特に指定しない変数はすべて局所変数として扱われる.
制御構造
- if {_condition_} {_true_block_}
if {_condition_} {_true_block_} else {_false_block_}
if {_condition_} {_true_block_} elseif {_condition_} {..
- ブレース間にスペースを入れ忘れるとエラーになる...(--;).
- マルチラインでの記述では,連結性に注意しないとエラーになる.
if {} {
}
エラー
if {}
{}
- while {_condition_} {_block_}: _condition_ が成り立つ間,_block_ の処理を行う
- foreach _variable_ _array_ {_block_}: _array_ 中の要素を一つずつ _variable_ へ代入して,_block_ の処理を行う
- break: 最下層の繰り返し処理のループを抜ける
Tk 編
Hello World!
label .foo -text "Hello, World!"
pack .foo
bind . {destroy .}
focus .
- シェル名は wish
- 日本語入力は kinput2 を使用する.起動は C-\
ウィジェット
- label
- button
- checkbutton
- radiobutton
- text
- message
- menubutton
- menu
- canvas
- frame
ウィンドウレベルの制御
ウィンドウマネージャ
||
Doc
||
Programs
||
BBS
||
Oshiro Home
||
Mail-to:
oshiro@mibai.tec.u-ryukyu.ac.jp