Wish Tcl/Tk 入門1. 実行の方法 |
Unix 上での実行は、次の 4 つの 手順で行います。
Windows で使う場合には、日本語は Shift+JIS コードにする必要 があります。だいたい自動で処理されているはずです。文字化けし なければ ok です。
例えば Unix 上で 保存したfile を Windows 上で使う場合に は (nkf -s file >! file.tcl) で Shift+JIS にしてください。 Windows 上でもコード変換するフリーソフトがあります(例えば、 nkf_win32)。
Windows では 実行可能にする必要はありません。その代わり file.tcl というように、.tcl をつけ この属性とtcl/tk を結びつ けることが必要です。Windows には、man (用語の説明) がありま せん。そのかわり help file が付属しています。
#!/bin/sh # the next line restarts using wish \ exec wish "$0" "$@" # # button ボタン .b1 の名称を 定義。. は top window # -text " 名称 " -command " 処理 " button .b1 -text "Hello World" -command exit # # pack ボタン .b1 を詰めて表示する。これがないと表示しない。 # pack .b1
最初の 3 行は、wish を起動するためのおまじないです。この 部分を全てのスクリプトでマウスでコピーしてお使いください。こ う書けばWindows ではコメントとして処理してくれます。
文頭にある # だけがコメントです。# 以下に説明を書きます。 良いプログラムは、良いコメントが必要です。
button は ボタンの名称を定義します。.b1 が ボタンの名前 です。先頭の "." は、top window (toplevel) の意味があります ので、省けません。.b1 は top window の 下にある b1 という意 味です。
ボタンを定義しても表示されません。表示するためには、 『置け』というコマンドが必要です。pack は window に詰めて置 くコマンドです。
これを file11 に save して
% chmod +x file11 で 実行可能にします。
% file11 で実行です。
実行結果。 window の中の Hellow world の所を マウスで クリックすると、 終了( -command exit) します。うまくいきましたか? (ここの web の ボタンを押してもダメですよ! )
#!/bin/sh # the next line restarts using wish \ exec wish "$0" "$@" # toplabel window . の タイトルを信号とします。 wm title . 信号 # # ボタン .b1 の名称を 定義。. は top window # -text " 名称 " -command " 処理 " # -fg 文字のいろ -activebackground マウスが来たときの色 # button .b1 -fg blue -activebackground blue \ -text "青" -command { . configure -bg blue } button .b2 -fg yellow -activebackground yellow \ -text "黄" -command { . configure -bg yellow } button .b3 -fg red -activebackground red \ -text "赤" -command { . configure -bg red } # ボタン .b1 を詰めて表示する。-expand yes サイズがかわって # も追従 -ipadx 10 -ipady 20 余白 # pack .b1 .b2 .b3 -expand yes # pack .b1 .b2 .b3 -ipadx 10 -ipady 10 -expand yes # pack .b1 .b2 .b3 -side left -padx 10 -pady 10 pack .b1 .b2 .b3 -side left -padx 10 -pady 10 \ -ipadx 10 -ipady 10 -expand yes
\ は コマンドが 1 行に 入り切らないときの継続です。
{ ... } は 1 つの コマンドで ... が複数行にわたっても1 行とみなします。この場合には \ は不要です。( 1 行の場合 { ... } の中がコメント行が入れられません。)
上を実行してみてください。また pack のいろいろな コメントを外せ ば、pack がどのように動くかが分かります。Unix なら
% man button
で このほかの属性がわかります。tk の build-in command と してでます。属性を変更するのは、configure command です。この 場合には、何の属性を変更するかを コマンドより先に示します。 上の例では、親 window . を configure コマンドによって 背景の いろ (-bg) を変更します。別の configure コマンドがない限り この設定は保存されます。
多くのコマンドは、pack のように コマンド 道具(widget) ま たは window 属性の順に指定します。
#!/bin/sh # the next line restarts using wish \ exec wish "$0" "$@" # # toplabel window . の タイトルを Place にします。 # wm title . "Place" # # toplabel window . の 設定を configure で変更します。 # window 幅 を 320 ピクセル、高さを 200 ピクセルにします。 # . configure -width 320 -height 200 # # ボタン .bt1 を定義します。 # 幅 半角 10 文字 高さ 5 文字分 です。 # button .bt1 -width 10 -height 5 -fg red -bg yellow \ -activeforeground orange -activebackground brown -text 絶対的配置\nボタン1 # # ボタン .bt1 を 左上から数えて、(100, 100) の位置に置きます。 # (100,100) の位置が、ボタンの中央になる(-anchor c)ようにします。 # place .bt1 -x 100 -y 100 -anchor c # # ボタン2 を定義します。 # button .bt2 -fg yellow -bg red \ -activeforeground black -activebackground white \ -text 相対的配置\nボタン2 # # 今度はボタンを window の 大きさを 1 としたときの 相対的な大きさ # で配置します。この場合は window の大きさに追従します。 # -relx -rely 相対的な位置 -anchor nw (北西=左上) # -relheight 相対的な高さ -relwidth 相対的な幅 # place .bt2 -relx 0.6 -rely 0.7 -anchor nw \ -relheight 0.25 -relwidth 0.36
window の大きさを変えて見てください。右下の角で大きさを 変えると様子が良く分かります。
place を使えば、自由に配置することができます。pack を使うと 簡単に配置することができます。うまく使い分けてください。
ボタンを作っただけでは、何も実行しませんね。次に入出力を いれて計算をさせてみましょう。
\n は改行を意味します。c 言語を知っている人は分かりやす いですね。他の言語ににているコマンドがいっぱいあります。ほと んど同じ意味に使います。
注: Wish は 大文字 小文字を区別します。ボタンの名称の先頭は 小文字であることが必要のようです。大文字にすると error が置 きました。
いい忘れましたが、実行するには wish や tcl/tk がそれぞれの OS で必要です。Free の software ですので、ftp 検索サイトで keyword tcl や tk で 日本語パッチ (日本語が使えるようになっ ている修正) の入っているものを 選択してください。 http://www.scriptics.com が、開発元です。ここで現在の version 情報を得ることができます。ここでは software の install 方法は説明しません。他の Web ページや 本を参考にして ください。