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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。