16.1.3 Tcl/Tkに(非常に)さっと目を通す

クラス階層は複雑に見えますが、実際の実務ではアプリケーションプログラマはほとんど常に階層のもっとも底辺にあるクラスを参照します。

注釈:

このリファレンス資料を使うために、Tkの短い進行を読む方法とTkコマンドのいろいろな部分を識別する方法を知る必要があるということはままあるでしょう。 (下に説明してあるものとTkinterにおける同等なものについては、節 16.1.4を参照してください。)

TkスクリプトはTclプログラムです。すべてのTclプログラムのように、Tkスクリプトは空白で区切られたトークンを並べたものです。Tkウィジェットはウィジェットのクラス、その設定を行うオプションと、それに役立つことをさせるアクションです。

Tkにおけるウィジェットを作るには、コマンドは常に次のような形式です:

                classCommand newPathname options

classCommand
どの種類のウィジェットを作るかを表します(ボタン、ラベル、メニュー、...)

newPathname
このウィジェットの新しい名前です。Tkのすべての名前はただ一つしか存在することが許されません。これを必ず実行するのを助けるために、ちょうどファイルシステム内のファイルのように、Tkのウィジェットにはパス名のある名前が付けられます。トップレベルウィジェットルート. (ピリオド)と呼ばれていて、子はさらにピリオドで区切られています。例として、.myApp.controlPanel.okButtonはウィジェットの名前です。

options
ウィジェットの見た目や場合によっては振る舞いを設定します。オプションはフラグと値のリスト形式で渡されます。unixシェルコマンドのフラグのように、フラグは`-'の後に続きます。また、値は一語以上ある場合には引用符内に置かれます。

例として:

    button   .fred   -fg red -text "hi there"
       ^       ^     \_____________________/
       |       |                |
     class    new            options
    command  widget  (-opt val -opt val ...)

一旦作られたら、ウィジェットへのパス名は新しいコマンドとなります。この新しいwidget commandは、actionを実行する新しいウィジェットを得るためのプログラマのハンドルです。CではこれをsomeAction(fred, someOptions)と表し、C++ではfred.someAction(someOptions)と表すでしょう。そして、Tkでは:

    .fred someAction someOptions

とします。オブジェクト名.fredがドットから始まっていることに注意してください。

あなたが期待するように、someActionに対する正当な値はウィジェットのクラスに依存します: fredがボタンなら.fred disableは機能しますが(fredはグレーになります)、fredがラベルなら機能しません(Tkではラベルの無効化をサポートしていません)。

someOptionsの正当な値はアクション依存です。disableのようないくつかのアクションは引数を必要としませんが、テキストエントリボックスのdeleteコマンドのような他のものは、削除するテキストの範囲を指定するための引数を必要とします。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。