結合元件變數

[ Next: 視窗管理員 | Previous: Packer | 內容 ]


結合元件變數

某些元件的目前值的設定(像輸入元件)可以使用特殊的選項來直接連結應用程式的變數,這些選項是 variable、textvariable、 onvalue、 offvalue及 value。這種連結有兩種方式:假如變數因為某種原因改變,它所連結的元件將會被更新以反應新的值。

不幸的是,Tkinter目前的運作無法透過variabletextvariable選項來遞交任何的Python變數給元件,這唯一一種可運作的變數叫做Variable是繼承自類別的子類別變數,這個變數是定義在Tkinter模組中,這種子類別的變數有很多有用的,有定義的有:StringVar、IntVar、DoubleVarBooleanVar。要讀取這樣一個變數的目前值裡如說 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()

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *