M.Hiroi's Home Page

Tcl/Tk GUI Programming

[ Home ]

CONTENTS


Tcl/Tk について

Windows を使っている人は多いけど、Windows でプログラミングを楽しむ人は少ないといわれています。市販のアプリケーションを使うだけで満足できることもありますが、GUI (Graphical User Interface) プログラミングは難しいとか、開発環境を整えるための費用に耐えられないといった理由もあるでしょう。X68000 のように、フリーで使える開発環境が Windows にもあれば、それも簡単に GUI アプリケーションが作成できるのであれば、プログラミングに挑戦してみよう、というユーザーも多いはずです。実は、このような用途にぴったりな開発環境があるのです。それが Tcl/Tk です。

Tcl/Tk (ティクルティーケイ) は、UNIX の X Windows, Mac OS, MS Windows 上で、GUI アプリケーションを作成することができるプログラミング言語です。Tcl/Tk は、1988 年に John K. Ousterhout 博士によって開発されました。Tcl は Tool Command Language の略で、UNIX のシェルスクリプトを拡張したようなインタプリタ型言語なので、簡単にプログラムを作ることができます。Tk (Tool Kit) は GUI の部品である widget (ウィジェットと呼ぶ) を集めたもので、これを使って簡単に GUI を構築することができます。Tcl/Tk の配布キットには、Widget Tour というデモプログラムが用意されています。一度ご覧になれば、その素晴らしさに驚かれることでしょう。そして、これがフリーで利用できるのですから、ありがたいことです。

もっとも、Tcl/Tk に不満がないわけではありません。実は、Tcl 言語にはさまざまな批判があります。Tcl はシェルスクリプトを拡張したコマンド言語、いわゆる簡易言語にすぎないので、大規模なプログラム開発には向きません。このホームページで公開しているプログラムを見てもらえばわかりますが、グローバル変数を多用しているため、プログラムの見通しはあまり良くありません。また、インタプリタですから実行速度も期待できません。Perl や Ruby よりも遅いです。

ですが、簡単に GUI を構築できる魅力は大きいですね。もともと Tcl はアプリケーションやツールの拡張言語として設計されました。C言語で書かれた関数を Tcl/Tk にリンクして呼び出したり、逆にC言語で作ったアプリケーションから Tcl/Tk を利用することもできます。つまり Tcl に不向きな処理は、ほかの言語で作成してリンクすればいいのです。この方法を使えば Tcl/Tk の適用範囲も広がります。

Tcl/Tk とC言語とのリンクは思っていたよりも簡単です。Windows の場合、時間のかかる処理ルーチンをC言語で作成し、これを DLL としてコンパイルして Tcl/Tk とリンクします。DLL というとなにやら難しいイメージがありますが、DLL のロードは Tcl の load コマンドで行うことができます。あとは、その規則に合わせて DLL を作成するだけです。

Tcl/Tk とC言語間のデータの受け渡しは、用意されているライブラリ (Tcl Library Procedures) を使えば簡単にできます。英文ですがヘルプも完備しているので、基本を理解すれば必要な関数を探し出すことは難しくありません。ライブラリは、設計の善し悪しによって使い勝手が大きく変わるものです。なかには、ソースを読まないと動作がよくわからない、という代物もありますが、Tcl/Tk のライブラリはとても使いやすいものです。

あなたも Tcl/Tk で GUI プログラミングを楽しみましょう。


インストール方法

●Windows

Tcl/Tk の各バージョンは Tcl Developer Xchange でダウンロードできます。このほかに、ActiveState が配布している ActiveTcl があります。ActiveTcl には Windows 用のバイナリが用意されているので、ファイルをダウンロードして実行するだけで、簡単にセットアップすることができます。

ActiveTcl は Tcl/Tk の有名な拡張ライブラリが含まれているので大変便利です。ActiveTcl にはウィジェットを紹介する Widget Tour や拡張ライブラリのデモプログラムが用意されているので、ひととおり眺めてみてください。その機能の多さに驚かれることでしょう。

●Linux

Debian 系の OS では、次のコマンドで Tcl/Tk をインストールすることができます。

sudo apt-get install tcl tk

●Cygwin

Windows の場合、Cygwin を使う方法もあります。Cygwin は Windows 上で UNIX ライクな環境を実現するためのフリーソフトウェアです。Cygwin の説明とインストール方法は下記 URL を参考にしてください。

なお、Cygwin のインストールはけっこう時間がかかります。最初は必要最低限のパッケージ (デフォルトで選択済み) をインストールし、そのあとで足りないパッケージを追加インストールすることをお勧めします。

それから、Tcl/Tk を実際に動かすには X サーバーが必要になります。Cygwin の場合、X11 カテゴリーをすべてインストールするのが簡単だと思います。起動方法ですが、スタートボタン -> Cygwin-X -> XWin Server を実行する、または Cygwin Terminal で次のコマンドを実行してください。

run xwin -multiwindow 

Cygwin Terminal で GUI アプリケーションを実行する場合、環境変数 DISPLAY の設定が必要になります。

$ export DISPLAY=:0.0

bash の設定ファイル .bashrc に書き込んでおくとよいでしょう。


  • Tcl Developer Xchange (本家)
  • AM02:50 Tcl/Tk Scripting Laboratory (浦野さん, リンク切れ)
  • もっとTcl/Tk (今井さん)

  • Copyright (C) 2000-2019 Makoto Hiroi
    All rights reserved.

    [ Home ]