您好,登錄后才能下訂單哦!
變量一共有4個類別
IntVar():整型變量,默認是0。
DoubleVar():浮點型變量,默認是0.0
StringVar():字符串變量,默認是空
BooleanVar():布爾型變量,True是1,False是0。
41-set()和get()用法:
from tkinter import *
win=Tk()
def view():
global Message
if Message==False:
Message=True
x.set("tkinter")
else:
Message=False
x.set("")
Message=False
x=StringVar()
label=Label(win,textvariable=x,fg="blue",bg="yellow",width=25,height=2)
label.pack()
button=Button(win,text="點擊",command=view)
button.pack()
win.mainloop()
42-追蹤trace()使用模式W,窗口同步顯示輸入內容:
from tkinter import *
def callback(*args):
print(x.get())
win=Tk()
x=StringVar()
entry=Entry(win,textvariable=x)
entry.pack(padx=5,pady=5)
x.trace("w",callback)
win.mainloop()
x.trace("w",callback)的第一個參數是模式,W代表當有執行寫入時,就自動去執行callback函數,也可以自行取函數名稱。這叫做變動追蹤。當第一個參數為r時,表示執行讀取,這時叫做讀取追蹤。
43-簡易計算器的實現:
from tkinter import *
win=Tk()
def calculate():
result=eval(equ.get())
equ.set(equ.get()+"=\n"+str(result))
def show(buttonString):
content=equ.get()
if content=="0":
content=""
equ.set(content+buttonString)
def backspace():
equ.set(str(equ.get()[:-1]))
def clear():
equ.set("0")
equ=StringVar()
equ.set("0")
label=Label(win,width=25,height=2,relief="raised",anchor=SE,textvariable=equ)
label.grid(row=0,column=0,columnspan=4,padx=5,pady=5)
clearbutton=Button(win,text="C",width=5,fg="blue",command=clear)
clearbutton.grid(row=1,column=0)
Button(win,text="DEL",width=5,command=backspace).grid(row=1,column=1)
Button(win,text="%",width=5,command=lambda:show("%")).grid(row=1,column=2)
Button(win,text="/",width=5,command=lambda:show("/")).grid(row=1,column=3)
Button(win,text="7",width=5,command=lambda:show("7")).grid(row=2,column=0)
Button(win,text="8",width=5,command=lambda:show("8")).grid(row=2,column=1)
Button(win,text="9",width=5,command=lambda:show("9")).grid(row=2,column=2)
Button(win,text="*",width=5,command=lambda:show("*")).grid(row=2,column=3)
Button(win,text="4",width=5,command=lambda:show("4")).grid(row=3,column=0)
Button(win,text="5",width=5,command=lambda:show("5")).grid(row=3,column=1)
Button(win,text="6",width=5,command=lambda:show("6")).grid(row=3,column=2)
Button(win,text="-",width=5,command=lambda:show("-")).grid(row=3,column=3)
Button(win,text="1",width=5,command=lambda:show("1")).grid(row=4,column=0)
Button(win,text="2",width=5,command=lambda:show("2")).grid(row=4,column=1)
Button(win,text="3",width=5,command=lambda:show("3")).grid(row=4,column=2)
Button(win,text="+",width=5,command=lambda:show("+")).grid(row=4,column=3)
Button(win,text="0",width=12,command=lambda:show("0")).grid(row=5,column=0,columnspan=2)
Button(win,text=".",width=5,command=lambda:show(".")).grid(row=5,column=2)
Button(win,text="=",width=5,bg="yellow",command=lambda:calculate()).grid(row=5,column=3)
win.mainloop()
在程序中使用lambda的目的是簡化設計,因為數字按鈕與算數表達式按鈕使用相同的函數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。