2012-01-17 10 views
5

私はTkinterのウィジェットを作成する場合、私はTcl/Tk「ウィジェットパス」の概念に参加するウィジェットの名前を指定することができます。例:それはTkinterでは名前でウィジェットを検索することは可能ですか?

from Tkinter import * 
button = Button(Frame(Tk(), name = "myframe"), name = "mybutton") 
str(button) == ".myframe.mybutton" 

私の例では "mybutton"という名前でウィジェットを取得できますか?

答えて

7

はい、しかし、あなたはルート「Tkの」インスタンスへの参照を保持する必要があります。すべてのTkinterのウィジェットは辞書である属性childrenを持って

>>> from Tkinter import * 
>>> win = Tk() 
>>> button = Button(Frame(win, name = "myframe"), name = "mybutton") 
>>> win.nametowidget("myframe.mybutton") 
<Tkinter.Button instance at 0x2550c68> 
3

:ちょうど「Tk.nametowidget」メソッドを使用します→widget instancewidget name

widget.children['subwidget_name'].children['subsubwidget_name'] # ... 
:1がで任意のサブウィジェットを見つけることができる、ということを考えると
関連する問題