變量類別的基本概念
有些Widget控件在執行時會更改內容,比如Entry、Label、選項按鈕等,我們可以更改它的內容,如果要改變這些內容可以使用這些參數,例如:textvariable
、variable
、onvalue
等。
不過要使用這些參數,需要藉助tkinter模塊內的變量類別,這個類別一共有4個子類別,每一個類別其實是一個數據類型的構造方法,我們可以通過這4個類別將它們與Widget控件的相關參數結合
x = IntVar( ) #整形變量,默認0
x = DoubleVar( ) #浮點型變量,默認0.0
x = StringVar( ) #字符串變量,默認""
x = BooleanVar( ) #布爾變量
get( ) 與 set( )
set可以更改內容,get可以獲取內容
實例代碼
# -*- coding: UTF-8
from tkinter import *
#變量類別-最常用的字符串類別StringVar()
def changetxt():
txt.set("hello world")
root = Tk()
root.geometry("200x150")
txt = StringVar()
txt.set("")
lt = Label(root, textvariable=txt, width=50, bg="azure", anchor=CENTER)
lt.pack(anchor=CENTER, side=TOP)
btn = Button(root, text="accept", command=changetxt)
btn.pack(anchor=CENTER, side=TOP)
root.mainloop()
使用get可以獲取當前內容,StringVar就是一個字符串,更改前一個代碼
# -*- coding: UTF-8
from tkinter import *
#變量類別-最常用的字符串類別StringVar()
def changetxt():
tmp = txt.get()
if tmp == "":
txt.set("Hello World")
else:
txt.set("")
root = Tk()
root.geometry("200x150")
txt = StringVar()
txt.set("")
lt = Label(root, textvariable=txt, width=50, height=3, relief=RAISED, bg="azure", anchor=CENTER)
lt.pack(anchor="center", side=TOP)
btn = Button(root, text="accept", command=changetxt)
btn.pack(anchor="center", side=TOP)
root.mainloop()