Variable 類
有些控件 (比如 Entry 控件, Radiobutton 控件 等) 可以通過傳入特定參數直接和一個程序變量綁定, 這些參數包括: variable, textvariable, onvalue, offvalue, value.
這種綁定是雙向的: 如果該變量發生改變, 與該變量綁定的控件也會隨之更新.
這些 Tkinter 控制變量和一般的 Python 變量一樣, 都是用來保存某個值的. 但一般的 Python 變量不能被傳遞給 variable 或者 textvariable 參數. 這些參數可接受的類型僅限於 Tkinter 包中的 Variable 類的子類. 如下:
x = StringVar() # 保存一個 string 類型變量, 默認值為""
x = IntVar() # 保存一個整型變量, 默認值為0
x = DoubleVar() # 保存一個浮點型變量, 默認值為0.0
x = BooleanVar() # 保存一個布爾型變量, 返回值為 0 (代表 False) 或 1 (代表 True)
要得到其保存的變量值, 使用它的 get() 方法即可.
要設置其保存的變量值, 使用它的 set() 方法即可.
Tkinter 支持將很多 GUI 組件與變量進行雙向綁定,執行這種雙向綁定后編程非常方便:
如果程序改變變量的值,GUI 組件的顯示內容或值會隨之改變。
當 GUI 組件的內容發生改變時(比如用戶輸入),變量的值也會隨之改變。
為了讓 Tkinter 組件與變量進行雙向綁定,只要為這些組件指定 variable(通常綁定組件的 value)、textvariable(通常綁定組件顯示的文本)等屬性即可。
但這種雙向綁定有一個限制,就是 Tkinter不允許將組件和普通變量進行綁定,只能和 tkinter 包下 Variable 類的子類進行綁定。該類包含如下幾個子類:
ShringVar():用於包裝str 值的變量。
IntVar():用於包裝整型值的變量。
DoubleVar():用於包裝浮點值的變量。
BooleanVar():用於包裝bool值的變量。
對於 Variable 變量而言,如果要設置其保存的變量值,則使用它的 set() 方法;如果要得到其保存的變量值,則使用它的 get() 方法。
示例參考
http://c.biancheng.net/view/2460.html
https://blog.csdn.net/liuxu0703/article/details/60644125
http://blog.sina.com.cn/s/blog_1484fe3c80102y5dz.html