Tkinterとは?

 現在のアプリケーションは、 DOSプロンプトやUNIXシェルからコマンドラインでキー入力する文字ベースのものより、 綺麗なアイコンが並んだウィンドウを出したり、 ボタンを押すと何か処理をしたりという、 GUI(Graphical User Interface)のツールが主流です。しかし、 MS-WindowsでもUNIX(Xウィンドウシステム)でも、 そのような高度なGUIアプリケーションをC言語で書くのは非常に習得の負担があり、 また改良などの手間もかかります。 これに対し、特にUNIXで大きなムーブメントとなったのが、 GUI機能を備えた言語処理系Tcl/Tkです。 Tcl/Tkは、正確にはTkというGUIライブラリの機能を、 Tclという平易で覚えやすいスクリプト言語から呼び出せるようにしたもので、 これを使えば、 簡単にウィンドウアプリケーションが作成できるということで広く支持を得て現在に至っています。

 で、 TkはTclと一緒に配布されているとはいえ根本的には独立したGUIライブラリなので、 TkをTcl以外の言語から呼び出すようなプログラムを作ることも可能です。 そこで、Pythonの歴史のかなり初期から、 Pythonの標準GUIインターフェースにも実はTkが使われていて、 Tcl/TkのGUIと(原理的には)同等のGUIを出すことができます。 使い方はTcl/TkでのTkの使い方とPythonの文法を覚えれば簡単に理解できます。 このTk部分のPythonモジュールが 「Tkinter」と呼ばれるもので、 Python/TkinterというのはつまりTcl/Tkに対する「Python/Tk」と言うべきものだ、 というのがわかりやすいでしょう。
 なお、GUIツールキットのPythonインターフェースはTkだけではありません。 実はQtやGtk+といったいわゆる「クールなデスクトップ環境を作ろう!」 という最近の流行を支えているGUIツールキットに対するモジュールも開発されています。 進取性の強いPythonならではの特徴なので、Tkinter以外の選択肢も当然あるでしょう。 このサイトでは、Pythonそのものの紹介のほかに、 Python/Tkinter、PyGTK、PyQtのそれぞれによるGUIプログラミングのとっつきぶぶんを紹介していくことにしてみました。


Python/Tkinterの特徴

 Pythonはオブジェクト指向のスクリプト言語です。Tkinterでは、 Tkの各ウィジェット(GUI)部品がすべてクラスとして定義されています。 Tcl/Tkよりも、Java AWT/Swing やC++用のGUIツールキットQt(*1) を使ったプログラミングに通じるものがあるので、 これらでプログラムを書いたことがあるとわかりやすいと思います。
 一方で、基本的な用語はTcl/TkのTkを忠実に踏襲しています (だからこそTkinterなのですが)。 ですから、色とか配置とかといった、各ウィジェットのオプションの指定方法は、 一旦Tkinterの書き方を覚えたらTcl/Tkからの類推でかなりの部分すいすい書けるので、 Tcl/TkのTkを知っているととてもわかりやすいはずです。 逆にそうでないと、Python自体の書籍が数少ないこともあり、 Python/Tkinter単独ではなかなかリソースが手に入らず苦労するかもしれませんね。

(*1)先にも触れましたが、 PythonからQtのGUIを出すことができるモジュールが 「PyQt」で、フリーでネット上で配布されています。Python/Tkinter と PyQt はスタイルとして親戚同士といってもよいほどよく似ています。

セクションのサブメニューに戻る
(first uploaded 1999/10/08 last updated 2002/03/11)


[PR]就職、仕事にも県民性が出る?:無料カンタン占いで日払いもアップ