一盅弛、Variable類
Tkinter支持將很多GUI組件與變量進行雙向綁定黑滴,執(zhí)行這樣的雙向綁定后,編程會變得更加方便薯鳍。
- 如果程序改變了變量的值咖气,那么GUI組件的顯示內(nèi)容或值會隨之改變挨措;
- 當GUI組件的內(nèi)容發(fā)生改變時(如用戶輸入),變量的值也會隨之改變崩溪。
這為我們節(jié)省了很多參數(shù)的傳輸和更新工作浅役,而且在一些變量的一致性上面更加方便。
但這樣的雙向綁定伶唯,必須使用Tkinter的Variable類的子類來實現(xiàn)觉既。
下面是Variable類的4中子類:
子類 | 說明 |
---|---|
StringVar() | 用于包裝Str值的變量,默認是"" |
IntVar() | 用于包裝整型值的變量乳幸,默認是0 |
DoubleVar() | 用于包裝浮點值的變量瞪讼,默認是0.0 |
BooleanVar() | 用于包裝bool值的變量,True是1粹断,F(xiàn)alse是0 |
Variable類的使用
- 使用前需要先聲明創(chuàng)建
- 使用get( )方法取得變量內(nèi)容
-
使用set( )方法設(shè)置變量內(nèi)容
不做過多的講解符欠,可以自己嘗試。
二瓶埋、Trace追蹤
Trace實際上是Variable類的一個方法希柿,用于對這些變量的變化進行實時追蹤诊沪,當變量發(fā)生改變時,能自動執(zhí)行對應(yīng)和函數(shù)曾撤。
在需要對Variable類的對象進行實時追蹤顯示時端姚,可以在這個變量上調(diào)用trace()
下面是在別的地方copy的栗子,可以品品挤悉。
# 變量追蹤:trace
from tkinter import *
window=Tk()
def callbackw(*args): #
print("variable was written!")
def callbackr(*args):
print("variable was read !")
def processButton1():
var.set("hello,world!")
def processButton2():
var.get()
def processButton3():
var.trace_vdelete("r",vr) #
var=StringVar()
# 追蹤變量var的變化
vw=var.trace("w", callbackw) #當變量var被重設(shè)時提示
vr=var.trace("r", callbackr) #當變量var被讀取時提示
Label(window,textvariable=var).pack()
Button(window,text="Button1",command=processButton1).pack() #重新設(shè)定變量var
Button(window,text="Button2",command=processButton2).pack() #讀取變量var的值
Button(window,text="Button3",command=processButton3).pack() #不再追蹤讀取變量的操作
window.mainloop()