Tcl/Tk を使いこなそう。 ■ 参考文献 [1] Paul Raines(著):Tcl/Tk デスクトップリファレンス, 須栗歩人(訳), ISBN 4-900900-98-2, O'Reilly (1999). 900円 [2] 永井秀利:Rubyを256倍使うための本 界道編, ISBN 4-7561-3993-0, アスキー (2001). 1200円 オーライリーシリーズのデスクトップリファレンスは、関数名や引数などを簡潔に列挙している。わかる人にはわかる書き方になっているため、初心者は別途使い方を説明している本などで勉強しよう。 [2] は、Rubyからのtkライブラリの使い方を具体的かつ冗長に説明している。軽い気持ちでどうぞ。がまんして読めば、かなりのことはできるようになります。 ■ Tcl/Tk の仕様書の一例 [1]po.51-52 より ●Entry ウィジェット ・Entryウィジェットオプション -background -insertbackground -highlightbackground -relief -borderwidth -insertborderwidth -highlightcolor -selectbackground -cursor -insertofftime -highlightthickness -selectborderwidth -exportselection -insertontime -selectforeground -textvariable -font -insertwidth -state -width -foreground -justify -takefocus -show char ・Entryインデックス 数字, anchor, end, insert, sel.first, sel.last, @x-code ・Entryウィジェットコマンド entry bbox index インデックスで指定された文字のバウンディングボックスを返す。 entry delete first [last] firstから、lastの文字の直前までの文字を削除。 entry get entryウィジェット上の文字列を返す。 entry icursor index indexの文字の直前に入力カーソルを移動。 entry index index indexに対応する数値インデックスを返す。 entry insert index string indexの文字の直前に文字列を挿入。 entry scan option args スクロール用 entry selection adjust index 現在の選択領域の端を、indexの示す最も近い位置に変更して、他端をアンカーに設定。 entry selection clear entryウィジェットにある選択領域を、選択されていない状態にする。 entry selection from index アンカー位置をインデックスに設定。 entry selection present 何か文字が選択されている場合には1を返し、そうでない場合は0を返す。 entry selection range start end start から end の位置の文字直前までの文字を選択 entry selection to index 選択領域のアンカー位置をindexまで拡張。 ■ Ruby からのtk操作 書式:ウィジェットオブジェクト.Tkのウィジェットコマンド(引数) Entryウィジェットの文字列を消去するボタン ⇒ omake2.rb □□□ チャレンジ1 □□□ Entryウィジェット内の文字列をテキストウィジェットに表示し、Entryウィジェットをクリアするボタン(ENTERボタン)を作れ。なお、表示の際、改行されるように工夫せよ。 ⇒ omake3.rb ■ バインド omake3.rb を改造して、Entryウィジェット上で、コントロールキーを押しながらqを押したとき終了する。 ⇒ omake4.rb □□□ チャレンジ2 □□□ omake4.rb をさらに改造して、リターンキーを押したとき、ENTERボタンと同等の働きをするように、バインドせよ。ちなみに、リターンキーは'Return'と指定する。 ⇒ omake5.rb □□□ チャレンジ3 □□□ 連続する複数のキー入力があるときの処理をバインドするためには、配列変数を使って指定すればよい。omake5.rb を改造して、「コントロールx」の次に「コントロールc」があるとき終了するようにバインドせよ。 ⇒ omake6.rb