Tcl ロゴ | |
Windows 10 上の Tk 8.6.6 | |
| 原作者 | ジョン・オースターハウト |
|---|---|
| 開発者 | Tclコアチーム[1] |
| 初回リリース | 1991年 |
| 安定リリース | 9.0.0 [2]
/ 2024年9月26日 |
| リポジトリ |
|
| 書かれた | C |
| オペレーティング·システム | クロスプラットフォーム |
| プラットフォーム | クロスプラットフォーム |
| タイプ | ウィジェットツールキット |
| ライセンス | BSDスタイル[3] |
| Webサイト | tcl.tk |
Tkは、多くのプログラミング言語でグラフィカル ユーザー インターフェイス(GUI)を構築するためのGUI ウィジェットの基本要素のライブラリを提供するクロスプラットフォーム ウィジェット ツールキットです。BSDスタイルのソフトウェアライセンスに基づいてリリースされる無料のオープン ソース ソフトウェアです。
Tk は、ボタン、メニュー、キャンバス、テキスト、フレーム、ラベルなど、デスクトップ アプリケーションの開発に一般的に必要な多くのウィジェットを提供します。Tk は、 Linux、macOS、Unix、およびMicrosoft Windowsのほとんどのバージョンで実行できるように移植されています。Tclと同様に、Tk は基本多言語面内でUnicodeをサポートしていますが、現在の拡張された完全なUnicode (例: Tk がサポートする UCS-2 からのUTF-16 )を処理できるようにはまだ拡張されていません。
Tkは拡張できるように設計されており、新しいウィジェットやその他の機能を提供する幅広い拡張機能が利用可能です。[4] [5]
Tcl/Tk 8 以降では、「ネイティブなルック アンド フィール」が提供されます (たとえば、メニューやボタンは、任意のプラットフォームの「ネイティブ」ソフトウェアと同じように表示されます)。[6]バージョン 8.5 のハイライトには、新しいテーマ エンジン (当初は Tk Tile と呼ばれていましたが、現在では一般に「テーマ Tk」と呼ばれています) と、フォント レンダリングの改善が含まれます。[8]バージョン8.6 のハイライトには、 PNGサポートと角度付きテキストが含まれます。[9]
歴史
Tkは、 Tclスクリプト言語の拡張機能としてJohn Ousterhoutによって開発されました。1991年に初めて公開されました。 [10] Tkのバージョン管理は、バージョン8.0までTclとは別に行われていました。
Tk はもともと Unix/X11 用に書かれ、 Motifや他の当時の X11 ツールキットよりも習得しやすく使いやすいことから、1990 年代のプログラマーの間で非常に人気を博しました。 [11] Tk は Tk 4.2 から Microsoft Windows や Macintosh プラットフォームにも移植され、Tk 8.0 (1997 年リリース) ではネイティブのルック アンド フィールに改良されました。1990 年代の Tk の人気と重要性を記念して、Ousterhout は1997 年に Tcl/Tk でACM ソフトウェア システム賞を受賞しました。 [12]
Tcl スクリプト言語では、開発者が既存のコンポーネントから複雑なシステムを作成できます。組み込みの Tk は、グラフィカル ユーザー インターフェイスを作成するためのシンプルなメカニズムを提供します。これらを組み合わせることで、ソフトウェア レパートリーに強力な機能が追加されます。
Tkへの関心は1990年代後半以降大幅に低下した。MotifがFLTK、Qt、GTKなどのツールキットに置き換えられたにもかかわらず、 Unixのデフォルトのルックアンドフィールは依然としてMotifをエミュレートしていた。[13]アプリケーションで一般的に使用されるようになったウィジェット(ツリー、コンボボックス、タブ付きノートブックなど)はTkコアでは利用できず、複数の競合するアドオンを介してのみ利用可能であった。[14]
2007年後半にリリースされたTk 8.5では、コアに不足していたウィジェットを追加し、新しいテーマエンジンを導入し、Unixのルックアンドフィールを近代化することで、これらの問題のいくつかを修正しました。[8] しかし、これらの進歩を組み込むためにいくつかのコード変更が必要だったため、多くの既存のアプリケーションは、Tkが有名になった古いMotif風の雰囲気を維持しています。[15]
建築
TkはTcl用に開発されたプラットフォームに依存しないGUIフレームワークです。Tclシェル(tclsh)から、コマンドを使用してTkを呼び出すことができますpackage require Tk。プログラムwish(WIndowing SHell)は、Tkを提供するだけでなく、グラフィカルウィンドウでtclshシェルを実行する方法も提供します。[16]
Tk には次の特性があります。
- プラットフォームに依存しない: Tclと同様に、Tkはインタープリタ型です。複数のプラットフォームに移植されており、変更なしですべてのプラットフォームで簡単に実行できます。[17]
- カスタマイズ可能: Tkのウィジェットのほぼすべての機能は、ウィジェットの作成時にオプションを設定するか、後でconfigureコマンドを使用してカスタマイズできます。[18]
- 設定可能: 多くのオプションはオプションデータベースに保存できるため、アプリケーションの外観(カラースキームなど)をパラメータ化することが非常に簡単になります。これは、アプリケーション固有のオプションを保存するには、オプション追加コマンドを保存し、アプリケーションの読み込み時にそれを実行するだけでよいことを意味します。[19]
言語バインディング
あるプログラミング言語で書かれたライブラリは、バインディングが書かれていれば別の言語でも使用できます。Tk は Tcl 言語と統合されています。他のさまざまな言語には Tk 用のバインディングがあり、その部分的なリストは Tk の Web サイトにあります。 [20]リストされていない可能性のある追加の言語用のバインディングも存在し、その中にはAda (TASH と呼ばれる)、[21] Haskell (HTk と呼ばれる)、[22] Perl、Python ( Tkinterと呼ばれる)、R (標準パッケージ tcltk 経由)、Ruby、Rexx、Common Lispなどがあります。
PerlからTkを使用する方法はいくつかあります。Tcl::TkとTkx Perlモジュール[23]はどちらもTkにアクセスするためのブリッジとしてTclを使用します。また、Perl/Tk [24]はTk構造へのネイティブなPerlアクセスを提供します。PythonバインディングはTclをTkへのブリッジとして使用します。[25]
特徴
Tkは様々なウィジェットを提供します。[26]基本的なウィジェットはウィジェットに埋め込まれtoplevel、ウィジェットは通常、画面上で移動できるフローティングウィンドウでオペレーティングシステムによってホストされます。[27]
基本ウィジェット
buttoncanvascheckbuttoncomboboxentryframelabellabelframelistboxmenumenubuttonmessagenotebookpanedwindowprogressbarradiobuttonscalescrollbarseparatorsizegripspinboxtexttk_optionMenutreeview
トップレベルウィジェット
tk_chooseColor–ユーザーが色を選択するためのダイアログ ボックスをポップアップ表示します。tk_chooseDirectory– ユーザーがディレクトリを選択するためのダイアログ ボックスをポップアップ表示します。tk_dialog– モーダルダイアログを作成し、応答を待ちます。tk_getOpenFile– ユーザーが開くファイルを選択するためのダイアログ ボックスをポップアップ表示します。tk_getSaveFile– ユーザーが保存するファイルを選択するためのダイアログ ボックスがポップアップ表示されます。tk_messageBox– メッセージ ウィンドウをポップアップし、ユーザーの応答を待ちます。tk_popup– ポップアップ メニューを表示します。toplevel– トップレベルのウィジェットを作成および操作します。
ジオメトリマネージャー
基本的なウィジェットはtoplevelジオメトリマネージャを使用してウィンドウ内に配置されます。[28]
place– ウィジェットを絶対位置に配置するgrid– ウィジェットをグリッドに並べますpack– ウィジェットを空洞に詰め込む
参照
- ウィジェットツールキットのリスト
- wish (ウィンドウシェル)
- 期待する
- Tkinter – Python 用の Tk バインディング
- イットク
- カテゴリ:Tk を使用するソフトウェア (ソフトウェア)
参考文献
- ^ 「Tcl/Tk コア開発」。Tcl Developer Xchange。2016年11 月 1 日閲覧。
- ^ "[TCLCORE] Tk 9.0.0 リリース".
- ^ 「Tcl/Tk ライセンス条項」。Tcl Developer Xchange。2016年11 月 4 日閲覧。
- ^ C で Tk ウィジェットを書く、Tcl と Tk による実践プログラミングの第 46 章、ISBN 0-13-038560-3
- ^ 「Tcl および Tk の拡張機能」 。Tclerの Wiki。2016年11 月 1 日閲覧。
- ^ "Tcl/Tk 8.0". Tcl Developer Xchange . 2013年9月18日. 2014年7月1日閲覧。
- ^ 「Tile: Tk の改良されたテーマ設定エンジン」。SourceForge。2016年11月 4 日閲覧。
- ^ ab 「Tcl/Tk 8.5 リリース発表」。Tcl Developer Xchange。2013年 9 月 18 日。2014年7 月 1 日に閲覧。
- ^ 「Tcl/Tk 8.6 リリース発表」。Tcl Developer Xchange。2013年 9 月 20 日。2014 年7 月 1 日に閲覧。
- ^ Ousterhout, John. 「Tcl の歴史」。Tcl Developer Exchange。2010年4 月 1 日閲覧。
- ^ 「Tk Backgrounder」TkDocs . 2016年11月4日閲覧。
- ^ 「John K Ousterhout - Award Winner」ACM Awards . 2016年11月4日閲覧。
- ^ 「TIP #48: Tk ウィジェット スタイリング サポート」。Tcl Developer Xchange。2016年11 月 1 日閲覧。
- ^ "treeview". Tcler's Wiki . 2016年11月1日閲覧。
- ^ 「TIP #319: tk ウィジェットの ttk テーマ ウィジェットの下位互換性を実装する」Tcl Developer Xchange。2016年11 月 1 日閲覧。
- ^ 「wish マニュアル ページ - Tk アプリケーション」。Tcl Developer Xchange。2016年11 月 1 日閲覧。
- ^ 「Tcl のコンパイル方法」 。Tcl Developer Xchange。2016年11 月 1 日閲覧。
- ^ 「ttk::widget マニュアル ページ - Tk テーマ ウィジェット」。Tcl Developer Xchange。2016年11 月 1 日閲覧。
- ^ 「オプションマニュアルページ - 組み込みコマンド」。Tcl Developer Xchange 。 2016年11月1日閲覧。
- ^ 「Tk バインディングを持つ言語」 。Tclerの Wiki。2014年7 月 1 日閲覧。
- ^ 「TASH」。SourceForge 。 2014年7月1日閲覧。
- ^ “HTk ホーム”. Informatik-FB3-Uni Bremen 。2016 年11 月 4 日に取得。
- ^ 「Tkx::Tutorial - Tkx の使い方」 。ActiveState Docs。2016年11 月 1 日閲覧。
- ^ Perl/Tk の概念、第 1 章、Mastering Perl/Tk、ISBN 978-1565927162
- ^ Tkinter 、 Modern Tkinter for Busy Python Developersの第 2.4 章、ASIN B0071QDNLO
- ^ 「Tk コマンド、バージョン 8.6.6」。Tcl Developer Xchange。2016年11 月 1 日閲覧。
- ^ ウィジェット、 Tcl と Tk ツールキットの第 17.2 章、ISBN 978-0321336330
- ^ ジオメトリ マネージャ、 Tcl および Tk ツールキットの第 17.6 章、ISBN 978-0321336330
さらに読む
- Ousterhout, John K. ; Jones, Ken (2009)。Tcl と Tk ツールキット (第 2 版)。Addison Wesley。ISBN 978-0-321-33633-0. 2012年11月4日閲覧。
- フォスター・ジョンソン、エリック (1997)。Tclと Tk によるグラフィカル アプリケーション(第 2 版)。ニューヨーク、NY: M&T Books。ISBN 1-55851-569-0. 2012年11月4日閲覧。
- Brent B. Welch, Practical Programming in Tcl and Tk、Prentice Hall、Upper Saddle River、NJ、USA、ISBN 0-13-038560-3、2003年
- J Adrian Zimmer、Tcl/Tk for Programmers、Wayback Machineに 2017 年 4 月 4 日にアーカイブ、IEEE Computer Society、John Wiley and Sons が配布、ISBN 0-8186-8515-8、1998年
- Mark Harrison および Michael McLennan、「Effective Tcl/Tk Programming」、Addison-Wesley、Reading、MA、USA、ISBN 0-201-63474-0、1998年
- Bert Wheeler、Tcl/Tk 8.5 プログラミング クックブック、Packt Publishing、バーミンガム、イングランド、英国、ISBN 1849512981、2011
- Clif Flynt Tcl/Tk、第 3 版:開発者ガイド、ISBN 0123847176、2012
外部リンク
- 公式サイト
- Tcler のウィキ
- Tk 8.6 マニュアル
- Tk ドキュメント: Tcl、Ruby、Perl、Python 向けの最新の Tk チュートリアル
- Tkバインディングのある言語
