1. Hello world!
1. 初めに
Tkinter は Python の標準的な GUI(Graphic User Interface) ツールです。Python は人気のある言語なので、
GUI Tool としては Tkinter のほかに wxPython, Qt, GTK などがありますが、Tkinter が一番
こなれている感じです。つまり、
- 動作が安定している。
- 起動が早い。
- プログラムが短くてすむ。
の3つが特徴として挙げられると思います。
Tkinter のチュートリアル
はすでにかなり存在しているのですが、Tk が巨大なシステムということも有り、
全てをカバーしたものはありません。この一連の文書では、他のチュートリアルがあまり取り上げていない話題を
中心に取り上げたいと思います。特に、widget を変化させることは他のチュートリアルで取り上げられていないので、
積極的に解説していきたいと思います。また、プログラムを作りながら説明していきます。
プログラムを実際に作ると楽しいし、理解が深まると思います。
しかし、
ただそれだけだと、Cookbook の類になってしまうので、Tkinter の初歩から
わかりやすく解説していきたいと思います。
2. 前提知識
この文書は Python の基礎知識および Python での オブジェクト指向プログラミング (OOP) の知識を前提としています。
必要に応じてリンクをたどってください。
- Python の基礎知識
- Pyhon での OOP
3. モジュールの import の方法
この文章では、
from Module import *
の形式の import の形式は使いません。
必ず、以下の形式を使います。
この方が、名前の由来がわかりやすく、バグを少なくできます。
- import Module
- import Module as Alias
- from Module import name
多くの解説書では、
from Tkinter import *
として Tkinter を import しますが、ここでは、
import Tkinter as Tk
とします。
この記法はスクリプト中だけでなく、本文中でも用いられます。
Tkinter module にある定数 (例えば CONST) を
Tk.CONST と書きます。
4. 動作環境
この一連の文書で示したプログラムは、
- Python2.4 + Windows XP
- Python2.3 + Debian GNU Linux
で動作を確認しています。
5. Hello World!
それでは早速、例の 'Hello World!' を書いてみましょう。以下のように実質4行で書けます。
Tkinter は wxPython などのほかの GUI Tool に比べてプログラムが短くなる利点があります。
01:
02:
03: import Tkinter as Tk
04:
05: la = Tk.Label(None, text='Hello World!', font=('Times', '18'))
06: la.pack()
07: la.mainloop()
上のスクリプトを実行すると右のような Window が現れます。

説明:
行 |
説明 |
1 |
スクリプト言語特有のおまじない。
(shebang といいます)
|
3 |
Tkinter を Tk として import |
5 |
Label を定義; 最初の引数は親 widget。この場合は None なので親はいない。widget は GUI の部品という意味。
text, font は keyword parameters。Times 18pt を使って 'Hello World!' と書くラベルを作成して
la に代入。 |
6 |
la を配置する。配置方法については次の章で述べる。 |
7 |
mainloop メソッドを使って、la をアプリケーション(部品ではなく、プログラム全体)
にする。Tkinter の widget はこのメソッドによってアプリケーションに
変身できる。アプリケーションをあらわすクラス 'Tk' というのもあるが、ほとんど使うことはない。
通常は、親なしの widget の mainloop を用いてアプリケーションを作る。 |
6. 今後の予定
次回は widget の配置の方法について述べ、それから、各 widget の使い方について述べていきたいと思います。