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

記事一覧

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

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

概要

任意の部品〔widget〕を再配置する方法を紹介します。

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

pack(side=)

■ 部品を配置する

アプリケーションを起動すると、次のようなウィンドウが現れます。

上部にキャンバス(黄色)が、下部に入力フィールドが配置されます。キャンバスには、テキスト(courier 24pt)が表示されます。左側のフィールドにフォント名を、右側のフィールドにポイント数を入力すると、指定した値に基づいて、テキストを表示します。
左右のフィールドに値を入力すると、キャンバスには、テキスト(courier 36pt)が表示されます。
左右のフィールドに値を入力すると、キャンバスには、テキスト(helvetica 36pt)が表示されます。
左右のフィールドに値を入力すると、キャンバスには、テキスト(times 36pt)が表示されます。
def ex():
    root = Tk(); root.title("Canvas.itemconfigure(font=)")

    canvas = Canvas(root, width=300, height=50, bg="Yellow")
    canvas.pack()

    p = 150,30
    text = "courier 24"
    item = canvas.create_text(
        p, text=text, font=text)

    tips = TIPS(root, canvas, item)
    root.tk_menuBar(*tips.menuItems())
    root.mainloop()

class TIPS(object):
    def __init__(self, master, canvas, item):
        self.master = master
        self.canvas = canvas
        self.item   = item
        self.var_font = StringVar(master)
        self.var_size = StringVar(master)

    def command(self, e):
        s1 = self.var_font.get()
        s2 = self.var_size.get()
        s = "%s %s"%(s1,s2)
        self.canvas.itemconfigure(
            self.item,
            text=s,
            font=s,
            )

    def menuItems(self):
        s = []
        def menuItems_(textvariable, text, width):
            label = Label(master=self.master, text=text)
            label.pack(side=LEFT)
            s.append(label)
            entry = Entry(
                master=self.master,
                textvariable=textvariable,
                width=width,
                borderwidth=2,
                )
            entry.pack(side=LEFT)
            entry.bind('', self.command)
            s.append(entry)

        for textvariable, text, width in [
            (self.var_font, "font", 15),
            (self.var_size, "size",  4),
            ]:
            menuItems_(textvariable, text, width)
        return s


関連記事

Last updated♪2009/08/21