? ? ? ? 不要忘记包的导入
from?tkinter?import *
from tkinter.messagebox import *import time
from tkinter import *
from tkinter.messagebox import *
#第二个窗体(跟登录界面一起写的)
class page2:
def __init__(self,win):
self.limitemp=0
self.limitshi=0
self.nowtemp=23
#self.cvar = IntVar()
self.v3=StringVar()
self.v4=StringVar()
self.win=win
self.win.title("温湿度显示窗体")
self.win.geometry("500x300")
#self.win.config(bg='blue')
#标签实例化、定位
self.lab1=Label(self.win,text='温 度:')
self.lab1.place(x=100,y=50,width=50,height=30)
self.lab2=Label(self.win,text='湿 度:')
self.lab2.place(x=100,y=100,width=50,height=30)
#文本框实例化、定位
self.textemp=Entry(textvariable=self.v3)
self.textshi=Entry(textvariable=self.v4)
self.textemp.place(x=180,y=50,width=150,height=30)
self.textshi.place(x=180,y=100,width=150,height=30)
#获取、重置、退出按钮实例化和定位
self.butt1=Button(self.win,text='获取',command=self.gain)
self.butt1.place(x=80,y=180,width=50,height=30)
self.butt2=Button(self.win,text='设置',command=self.setup)
self.butt2.place(x=180,y=180,width=50,height=30)
self.butt3=Button(self.win,text='重置',command=self.reset1)
self.butt3.place(x=280,y=180,width=50,height=30)
self.buttback=Button(self.win,text='返回',command=self.back)
self.buttback.place(x=380,y=180,width=50,height=30)
#图片导入
self.photo1=PhotoImage(file="./f1.gif")
self.fan=Label(self.win,image=self.photo1)
self.fan.place(x=350, y=40, width=100, height=100)
self.bm1=PhotoImage(file='./f1.gif')
self.bm2=PhotoImage(file='./f2.gif')
self.bm3=PhotoImage(file='./f3.gif')
self.bm4=PhotoImage(file='./f4.gif')
self.bm5=PhotoImage(file='./f5.gif')
self.bm6=PhotoImage(file='./f6.gif')
self.bm7=PhotoImage(file='./f7.gif')
self.bm8=PhotoImage(file='./f8.gif')
self.turn1=Label(image=self.bm1)
重点1:程序文件得与所需图片建议在同个文件夹下
self.photo1=PhotoImage(file="./f1.gif")? ? ? ? ? ? ? ? ? ? ? ? ?//文件后缀改为.png或.jpg仍适用
如果你非得,存在其他的地方,用如下方法查询路径
self.photo1=PhotoImage(file="D:\\mortal\\lelele\\f1.png")?
重点2:通过给标签背景化来达到窗口打开就有个静止的风扇的目的?
self.fan=Label(self.win,image=self.photo1)
#功能编写:风扇控制
def gain(self):
if self.nowtemp > self.limitemp:
self.fan.place_forget() #控件隐藏
#如何使风扇转动
images = [self.bm1,self.bm2,self.bm3,self.bm4,self.bm5,self.bm6]
def imgif(id):
global s #全局变量
img=images[id]
self.turn1.config(image=img)
id=id+1
s=self.turn1.after(10,imgif,id%6)
return(s)
imgif(0)
#——————————————
self.turn1.place(x=350,y=40,width=100,height=100)
showinfo("提示","开启风扇")
else:
self.turn1.place_forget() #控件隐藏
self.fan.place(x=350,y=40,width=100,height=100)
showinfo("提示","关闭风扇")
self.v3.set('23°') #self.textemp.insert(0,'23°')
self.v4.set('40%') #self.textshi.insert(0,'40%')
? ? ? ? 风扇的转动其实是一个遍历每一个图片的过程,?
?s=self.turn1.after(10,imgif,id%6)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? 这里使用了after函数,其各参数含义如下:
after(间隔时间,运行函数,函数参数)
#功能编写:设置温度
def setup(self):
if self.v3.get()[-1]=='°' :
self.limitemp =int( self.v3.get().replace("°",""))
else:
self.limitemp = int(self.v3.get())
if self.v4.get()[-1]=='%' :
self.limitshi = int(self.v4.get().replace("%",""))
else:
self.limitshi = int(self.v4.get())
showinfo("提示","温度设定为"+str(self.limitemp) + "°"+","+"湿度设定为"+str(self.limitshi)+"%")
self.v3.set(str(self.limitemp)+"°")
self.v4.set(str(self.limitshi)+"%")
#功能编写:重置文本框
def reset1(self):
self.v3.set("") #self.textemp.delete(0,END)
self.v4.set("") #self.textshi.delete(0,END)
#功能编写:返回上一个窗体
def back(self):
self.lab1.destroy()
self.lab2.destroy()
self.textemp.destroy()
self.textshi.destroy()
self.butt1.destroy()
self.butt2.destroy()
self.butt3.destroy()
self.buttback.destroy()
self.fan.destroy()
page1(root)
????????? ? ? ? ——————————点这里返回上一个窗体——————————
#窗体实现
root=Tk()
p1=page1(root)
root.mainloop()
关于函数不一一进行解释了,有空闲会将关于函数的笔记写在另一篇博客里?
程序中获取温湿度仅通过直接写入方式,可考虑更改成通过平台获取实际的温湿度(下次一定)