Python.use(better,Tkinter)《余録》Entry

記事一覧

Python.use(better, Tkinter)
Entry《Python3.1》

《著》森こねこ・小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪1993/11/25

概要

部品 Button の基本的な機能を紹介します。

Tkinter によるオブジェクト指向プログラミングへの扉を開きます。
※ Tcl/Tk で作成した例題を、Tkinter で再構成しました。

事例:

次のコードを実行すると、ウィンドウが現われます。

>>> tips1()

  • 〔右側〕項目(エントリー)を入力して〔return〕キーを押すと、
  • 〔左側〕キャンバスの色が変化します。
def tips1():
    class TIPS(object):
        items = "red", "green", "blue",

        def __init__(self, master, canvas):
            self.values = self.create_values()
            self.canvas = canvas
            self.create_Entry(master)

        def create_values(self):
            return dict((e,IntVar()) for e in self.items)

        def create_Entry(self, master):
            for e in self.items:
                widget = Entry(
                    master=master,
                    width=5,
                    textvariable=self.values[e],
                    )
                widget.bind('', self)
                widget.pack(pady=2)

        def __getitem__(self, key):
            return self.values[key].get()

        def __call__(self, event):
            s = [self[e] for e in self.items]
            bg = ("#"+"%02X"*len(s))%tuple(s)
            self.canvas.config(bg=bg)

    ## ----------------------------------------
    root = Tk()
    root.title("Entry")
    root.config(padx=16, pady=8)

    canvas = Canvas(
        root,
        width=100, height=100, relief=RIDGE, borderwidth=5,
        )
    frame = Frame(root)

    TIPS(frame, canvas)

    canvas.grid(row=0, column=0)
    frame .grid(row=0, column=1)
    root.mainloop()