06-tkinter学习之变量类别学习-创新互联

变量一共有4个类别

成都创新互联公司成都网站建设定制网站开发,是成都网站设计公司,为咖啡厅设计提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站设计热线:028-86922220

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的目的是简化设计,因为数字按钮与算数表达式按钮使用相同的函数。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:06-tkinter学习之变量类别学习-创新互联
标题路径:http://myzitong.com/article/dgpojs.html