Tkinter《1》Tk ウィンドウとイベントループ ★
‖記事一覧‖ Python.use(better, Tkinter)《Python3.1》
《Previous|1/∞|Next》
Tk ウィンドウとイベントループ
簡単な事例
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
このようになります。これらの違いを、じっくりと眺めてみるのも一興です。