Python 弾丸ツアー #DP: ツリー ... step 1: Tkinter:コンポーネント
Python.use(better); Python 弾丸ツアー #DP: Tkinter/Python 編
>>> ツリー(階層構造)
step 1: Tkinter:コンポーネント
《Python3.1|Jython2.5|IronPython2.6》
step 1: Composite を導入する
■ TIPS Tkinter:コンポーネント
 ̄Tkinter では、便利な GUI コンポーネント(widget)が提供されています。これらをウィンドウ内に配置するだけで、GUI を活用したアプリケーション開発が容易になります。
● Label
 ̄ラベル Label は、ウィンドウ内にテキスト(文字列)を配置したいときに便利です。ラベルを生成するには、クラス呼び出し Label() を利用します。すべての部品に共通するのは、クラス呼び出しにおいて、
- その第1引数に、その部品を配置する親を指定する
ことです。
Label (frame, text=tab , font=font)ここでは、フレーム frame を親に指定したので、生成したラベルは(ウィンドウではなく)フレーム内に配置されます。さらにクラス呼び出しでは、第1引数の後に「任意のキーワード引数」を指定できます。
 ̄キーワード引数 text= に続いて、表示したいテキスト(文字列)を指定します。このとき、
def createNodes_(self, parent, path, indent=0): ... tab_folder = " + " tab_file = " . "フォルダー tab_folder とファイル tab_file とでは、異なるラベルが提示されます。さらに、キーワード引数 font= に続いて、使用したいフォントを指定します。このとき、
font = "courier 12"font を設定するのに、フォントの名前、大きさを空白で区切った文字列を利用しています。
● Button
 ̄同様にして、ボタン(Button)を生成するには、クラス呼び出し Button() を利用します。
Button(frame, image=image)ここでは、フレーム frame を親に指定したので、生成したボタンは(ウィンドウではなく)フレーム内に配置されます。
 ̄キーワード引数 image= に続いて、表示したいイメージ(画像)を指定します。このとき、class TIPS(object): # Client def __init__(self, master, path): self.folder_image = PhotoImage(file="_image/folder.gif") self.file_image = PhotoImage(file="_image/file.gif")フォルダー folder_image とファイル file_image とでは、異なる画像が提示されます。
《Point》ここで注目して欲しいのは、引数 master によって参照される親コンポーネントは「実行時」に確定することです。この動的な性質の恩恵によって、要求仕様の変更にも柔軟に対処できるコードを記述すると「プログラミングの効率化」が期待できます。□