python tkinter实现屏保程序
本文实例为大家分享了pythontkinter实现屏保程序的具体代码,供大家参考,具体内容如下
该脚本摘录自:2014年辛星tkinter教程第二版
#!/usr/bin/envpython
fromTkinterimport*
fromrandomimportrandint
classRandomBall(object):
def__init__(self,canvas,screenwidth,screenheight):
self.canvas=canvas
self.xpos=randint(10,int(screenwidth))
self.ypos=randint(10,int(screenheight))
self.xspeed=randint(6,12)
self.yspeed=randint(6,12)
self.screenwidth=screenwidth
self.screenheight=screenheight
self.radius=randint(40,70)
color=lambda:randint(0,255)
self.color='#%02x%02x%02x'%(color(),color(),color())
defcreate_ball(self):
x1=self.xpos-self.radius
y1=self.ypos-self.radius
x2=self.xpos+self.radius
y2=self.ypos+self.radius
self.itm=self.canvas.create_oval(x1,y1,x2,y2,fill=self.color,
outline=self.color)
defmove_ball(self):
self.xpos+=self.xspeed
self.ypos+=self.yspeed
ifself.ypos>=self.screenheight-self.radius:
self.yspeed=-self.yspeed
ifself.ypos<=self.radius:
self.yspeed=abs(self.yspeed)
ifself.xpos>=self.screenwidth-self.radiusorself.xpos<=self.radius:
self.xspeed=-self.xspeed
self.canvas.move(self.itm,self.xspeed,self.yspeed)
classScreenSaver:
def__init__(self,num_balls):
self.balls=[]
self.root=Tk()
w,h=self.root.winfo_screenwidth(),self.root.winfo_screenheight()
self.root.overrideredirect(1)
self.root.attributes('-alpha',0.3)
self.root.bind('',self.myquit)
self.root.bind('',self.myquit)
self.canvas=Canvas(self.root,width=w,height=h)
self.canvas.pack()
foriinrange(num_balls):
ball=RandomBall(self.canvas,screenwidth=w,screenheight=h)
ball.create_ball()
self.balls.append(ball)
self.run_screen_saver()
self.root.mainloop()
defrun_screen_saver(self):
forballinself.balls:
ball.move_ball()
self.canvas.after(50,self.run_screen_saver)
defmyquit(self,event):
self.root.destroy()
if__name__=="__main__":
ScreenSaver(18)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。