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

記事一覧

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

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

■ 概要

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

Tkinter によるオブジェクト指向プログラミングへの扉を開きます。

pack(side=)

■ 部品を配置する

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

上部にボタンが、中央部にキャンバス(黄色)が、下部にメニューバーが配置されます。メニュー項目を選択すると、その側面で接するように、ボタンを再配置します。

ウィンドウを大きくします。すると、その上側で接するように、ボタンを再配置します。キャンバスには、指定した値として top(規定値)が表示されます。

メニュー項目〔right〕を選択すると、右側 right で接するように、ボタンを再配置します。
メニュー項目〔bottom〕を選択すると、下側 bottom で接するように、ボタンを再配置します。
メニュー項目〔left〕を選択すると、右側 left で接するように、ボタンを再配置します。
def ex():
    root = Tk(); root.title("Button.pack(side=*)")

    filename = "_image/earth.gif"
    img = PhotoImage(file=filename)

    frame = Frame(root)
    frame.pack(expand=True, fill=BOTH)
    button = Button(frame, image=img)
    button.pack()
    canvas = Canvas(root, width=200, height=40, bg="Yellow")
    canvas.pack()

    p = 100,25
    item = canvas.create_text(
        p, text=TOP, font="courier 24")

    tips = TIPS(root, button, canvas, item)
    root.tk_menuBar(tips.menuItem())
    root.mainloop()

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

    def command(self):
        s = self.var.get()
        self.widget.pack(side=s)
        self.canvas.itemconfigure(
            self.item,
            text=s,
            )

    def menuItem(self):
        button = Menubutton(
            master=self.master,
            text='side',
            )
        button.pack(side=LEFT)
        button.menu = Menu(master=button)

        s = TOP, RIGHT, BOTTOM, LEFT,
        for e in s:
            button.menu.add_radiobutton(
                label=e,
                variable=self.var,
                value=e,
                command=self.command,
                )
        button['menu'] = button.menu
        return button

《Note》class Pack: # /Python-3.0/Lib/tkinter/__init__.py

    def pack_configure(self, cnf={}, **kw)
    pack = configure = config = pack_configure
  • 指定した引数に合わせて、部品を再配置します。

《Note》class Menu(Widget): # /Python-3.0/Lib/tkinter/__init__.py

    """Menu widget which allows to display menu bars, pull-down menus and pop-up menus."""
    def add_radiobutton(self, cnf={}, **kw):
        """Addd radio menu item."""

Last updated♪2009/08/21