部品の階層構造

Tk が提供する部品の階層構造と、オプションを指定する方法を紹介します。


    root = Tk()

    root.title("(^_^)")
    root.config(width=150, height=60)
    root.propagate(False)
    
    def happy(): print "as happy as happy can be"

    label = Label(root, text="Are you happy?")
    frame = Frame(root)
    yes = Button(frame, text="yes", command=happy)
    no  = Button(frame, text="no" , command=exit )

    label.pack()
    frame.pack()
    yes.pack(side=LEFT)
    no .pack(side=LEFT)

    root.mainloop()

Tk が提供する部品の階層構造を、tcl/Tkinter を比較しながら解説します。ここでは、複数の部品を利用する状況を想定しています。これらの部品は、ウィンドウ Tk を頂点(祖先)とするひとつの木構造系図)を形成します。ウィンドウを親とする子供たちは、ラベル Label とフレーム Frame です。そのフレームを親とする孫たちは、2つのボタン Button です。