Next: 視窗管理員 | Previous: Packer | 內容
結合元件變數
某些元件的目前值的設定(像輸入元件)可以使用特殊的選項來直接連結應用程式的變數,這些選項是 variable、
textvariable、
onvalue、
offvalue及
value。這種連結有兩種方式:假如變數因為某種原因改變,它所連結的元件將會被更新以反應新的值。
不幸的是,Tkinter目前的運作無法透過variable
或 textvariable選項來
遞交任何的Python變數給元件,這唯一一種可運作的變數叫做Variable是繼承自類別的子類別變數,這個變數是定義在Tkinter模組中,這種子類別的變數有很多有用的,有定義的有:StringVar、
IntVar、
DoubleVar
及BooleanVar。要讀取這樣一個變數的目前值裡如說
myval,你可以呼叫 get() 方法,並且使用set()方法來改變它的值,假如你遵從這種協定,元件就可以追蹤變數的值,你就無須另外有更多的介入。
舉例:
class App(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.entrythingy = Entry()
self.entrythingy.pack()
self.button.pack()
# here is the application variable
self.contents = StringVar()
# set it to some value
self.contents.set(“this is a variable”)
# tell the entry widget to watch this variable
self.entrythingy[“textvariable”] = self.contents
# and here we get a callback when the user hits return.
# we will have the program print out the value of the
# application variable when the user hits return
self.entrythingy.bind(‘<Key-Return>’,
self.print_contents)
def print_contents(self, event):
print “hi. contents of entry is now —->”,
self.contents.get()
3 則留言