HOME Python 書き込む

1. Hello world!


1. 初めに

Tkinter は Python の標準的な GUI(Graphic User Interface) ツールです。Python は人気のある言語なので、 GUI Tool としては Tkinter のほかに wxPython, Qt, GTK などがありますが、Tkinter が一番 こなれている感じです。つまり、
  1. 動作が安定している。
  2. 起動が早い。
  3. プログラムが短くてすむ。
の3つが特徴として挙げられると思います。 Tkinter のチュートリアル はすでにかなり存在しているのですが、Tk が巨大なシステムということも有り、 全てをカバーしたものはありません。この一連の文書では、他のチュートリアルがあまり取り上げていない話題を 中心に取り上げたいと思います。特に、widget を変化させることは他のチュートリアルで取り上げられていないので、 積極的に解説していきたいと思います。また、プログラムを作りながら説明していきます。 プログラムを実際に作ると楽しいし、理解が深まると思います。

しかし、 ただそれだけだと、Cookbook の類になってしまうので、Tkinter の初歩から わかりやすく解説していきたいと思います。

2. 前提知識

この文書は Python の基礎知識および Python での オブジェクト指向プログラミング (OOP) の知識を前提としています。 必要に応じてリンクをたどってください。

3. モジュールの import の方法

この文章では、
from Module import *
の形式の import の形式は使いません。
必ず、以下の形式を使います。 この方が、名前の由来がわかりやすく、バグを少なくできます。
  1. import Module
  2. import Module as Alias
  3. from Module import name
多くの解説書では、 from Tkinter import *
として Tkinter を import しますが、ここでは、
import Tkinter as Tk
とします。

この記法はスクリプト中だけでなく、本文中でも用いられます。 Tkinter module にある定数 (例えば CONST) を Tk.CONST と書きます。

4. 動作環境

この一連の文書で示したプログラムは、 で動作を確認しています。

5. Hello World!

それでは早速、例の 'Hello World!' を書いてみましょう。以下のように実質4行で書けます。 Tkinter は wxPython などのほかの GUI Tool に比べてプログラムが短くなる利点があります。
01:     #! /usr/bin/env python
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 の使い方について述べていきたいと思います。