Tkinter《1》Tk ウィンドウとイベントループ ★

記事一覧 Python.use(better, Tkinter)《Python3.1》

Previous|1/∞|Next
Tk ウィンドウとイベントループ

《著》森こねこ《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2006/10/28

簡単な事例

Tk の基盤となるウィンドウとイベントループについて紹介します。

Tkinter を利用したアプリケーション開発に必要な情報を、コードの断片(事例)とともに紹介します。



    root = Tk()
    root.mainloop()

わずか2行のコードの断片を実行するだけで、ウィンドウが現われます。タイトルに 'tk' とあるのは、何も指定しないときの規定値が反映したものです。これが Tk で構築したものであっても、通常のウィンドウと違いはありません。ウィンドウの大きさを変更したり、アイコン化した後で再表示したりできます。
Tk は、最上位の部品を提供するもので、通常はメインウィンドウを作成します。mainloop(self,n=0) は、メインループを呼び出すことで、イベント処理を可能にします。ウィンドウの大きさを変更したり、アイコン化できるのは、このイベント処理のお陰です。そのため、この行を省略して実行しても、ウィンドウは現われません。

イベント処理ループ

このコードに少し手を加えると、世界で最も有名なプログラムのひとつになります。


    root = Tk()
    def hello(): print "hello, world"
    widget = Button(root, 
        width=12, height=2, text="click me", command=hello)
    widget.pack()
    root.mainloop()

このコードを実行すると、ウィンドウが現われます。ここで、ボタンを選択すると、次のような情報が出力される、定番の hello, world プログラムになります。

hello, world

その詳細を後回しにすると、典型的なコードの構造は、次のような形になります。



Tk/mainloop で囲まれた中に、必要な部品などを構築するためのコードを記述します。参考までに、Python/Tkinter と比較するために、同等のコードを tcl/tk で記述すると、

    button .widget -width 12 -height 2 \
        -text "click me" -command {puts stdout "hello world"}
    pack .widget

このようになります。これらの違いを、じっくりと眺めてみるのも一興です。


Previous|1/∞|Next