Python.use(better,Tkinter); Entry #1
‖記事一覧‖
Python.use(better, Tkinter)
Entry #1《Python3.1》
《著》森こねこ・小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2006/10/28
概要
エントリーに入力した文字列を獲得する方法を紹介します。
Tkinter によるオブジェクト指向プログラミングへの扉を開きます。
※ Tcl/Tk で作成した例題を、Tkinter で再構成しました。
事例1:
次のコードを実行すると、ウィンドウが現われます。
>>> ex2() NEW Happy
末尾の文字 "S" を削除してから〔Return〕キーを入力します。 ・文字列 "NEW" を出力します。 |
|
新たに文字列 "Happy" に続けて〔Return〕キーを入力します。 ・文字列 "Happy" を出力します。 |
def ex2(): class TIPS(object): def __init__(self, master): widget = Entry( master=master, ) text = "NEWS" widget.insert(END, text) widget.bind('', self) #1 widget.pack() def __call__(self, event): #2 print(event.widget.get()) ## ---------------------------------------- root = Tk() root.title("Entry") root.config(padx=16, pady=8) TIPS(master=root) root.mainloop()
コードの解説
■ #1:
widget.bind('', self) #1
〔Return〕キーに呼応して、特殊メソッド __call__ を起動します。
- 第2引数には、関数/メソッドのほかに、任意の呼び出し可能オブジェクト(self)を指定できます。
《Note》
class Misc: # /Python-3.0/Lib/tkinter/__init__.py def bind(self, sequence=None, func=None, add=None): """Bind to this widget at event SEQUENCE a call to function FUNC.
- イベントに呼応して起動されるハンドラーを規定します。
keyword arguments sequence= イベントを指定します func= イベントハンドラー(関数/メソッド)を指定します