Tk (ツールキット)

Tkは、GUI(グラフィカルユーザーインターフェース)を開発するための、オープンソースでクロスプラットフォーム対応のウィジェットツールキットです。これは、ボタン、メニュー、テキストボックス、フレーム、ラベルなど、デスクトップアプリケーションの開発において一般的に必要となる様々なウィジェットを提供します。

開発の経緯

Tkは、カリフォルニア大学バークレー校のジョン・オースターハウトによって、スクリプト言語Tclの拡張として開発されました。Tkという名称は「Tool Kit」の略であり、その名の通り、GUI開発を容易にするためのツール群を提供します。

対応プラットフォーム

当初はUnix系OSで開発されましたが、後にMacintoshやMicrosoft Windowsなどの主要なオペレーティングシステムに移植され、異なるプラットフォームでも一貫したGUIアプリケーションの開発が可能になりました。

機能

初期のTkは、各プラットフォームの標準的なUIとは異なる外観でしたが、Tk 8以降では、各OSのネイティブなルック・アンド・フィールをサポートするようになりました。これにより、メニューやボタンなどの表示が、各プラットフォームの標準的なソフトウェアの作法に沿って表示されるようになり、ユーザーエクスペリエンスが向上しました。

さらに、Tk 8では、外部とのドラッグアンドドロップや非矩形のウィンドウのサポート、ネイティブウィジェットの統合など、多くの機能拡張が導入されました。Tk 8.5では、Tk Tileという新しいテーマエンジンが正式に採用され、Ttk Widgetを通じてGUIの見た目を柔軟にカスタマイズできるようになりました。

TkはUnicodeの基本多言語面(BMP)をサポートしていますが、32ビットUnicodeのサポートはまだ実装されていません。また、Unix系のシステムでは、Tk 8.4以前はビットマップフォントを使用していたものの、Tk 8.5以降ではアンチエイリアスフォントが利用できるようになり、より滑らかで美しいフォント表示が可能になりました。

Tclとの連携

Tclでは、コマンドラインインタプリタであるtclshを使用しますが、Tkは、wish(Windowing Shell)という別のコマンドラインインタプリタを通じて容易に利用できます。

他の言語との連携

TkはTclだけでなく、他の多くのプログラミング言語からも利用できます。例えば、Ada(TASH)、PerlPythonRubyCommon Lispなど、様々な言語用のバインディングが存在します。

特にPerlでは、Tcl::TkやTkxといったモジュールを通してTclを経由してTkにアクセスする方法と、Perl/TkというPerlから直接Tkの機能を利用できるネイティブな機構も提供されています。PythonRubyも、Tclをブリッジとして使用するバインディングを通してTkを利用できます。

関連情報

Tcl and Tk website: Tkの公式サイト。
Active Tcl - Tk manual: ActiveTclによるTkマニュアル。
Tcl-Tk - Curlie: TclとTkに関連する情報を集めたリンク集。

関連項目

Tcl: Tkが開発されたスクリプト言語。
Tkinter: Python用のTkバインディング。
GTK: The GIMP Toolkit。
Qt: クロスプラットフォームのアプリケーション開発フレームワーク。
wxWidgets: クロスプラットフォームのGUIライブラリ。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。