python tkinter实现屏保程序


Posted in Python onJuly 30, 2019

本文实例为大家分享了python tkinter实现屏保程序的具体代码,供大家参考,具体内容如下

该脚本摘录自:2014年辛星tkinter教程第二版

#!/usr/bin/env python
 
from Tkinter import *
from random import randint
 
class RandomBall(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())
 
  def create_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)
 
  def move_ball(self):
    self.xpos += self.xspeed
    self.ypos += self.yspeed
    if self.ypos >= self.screenheight - self.radius:
      self.yspeed = -self.yspeed
    if self.ypos <= self.radius:
      self.yspeed = abs(self.yspeed)
    if self.xpos >= self.screenwidth - self.radius or self.xpos <= self.radius:
      self.xspeed = -self.xspeed
    self.canvas.move(self.itm, self.xspeed, self.yspeed)
 
class ScreenSaver:
  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('<Key>', self.myquit)
    self.root.bind('<Motion>', self.myquit)
    self.canvas = Canvas(self.root, width=w, height=h)
    self.canvas.pack()
    for i in range(num_balls):
      ball = RandomBall(self.canvas, screenwidth=w, screenheight=h)
      ball.create_ball()
      self.balls.append(ball)
    self.run_screen_saver()
    self.root.mainloop()
 
  def run_screen_saver(self):
    for ball in self.balls:
      ball.move_ball()
    self.canvas.after(50, self.run_screen_saver)
 
  def myquit(self, event):
    self.root.destroy()
 
if __name__ == "__main__":
  ScreenSaver(18)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现包含min函数的栈
Apr 29 Python
Python学习入门之区块链详解
Jul 25 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
Python定时器实例代码
Nov 01 Python
python 编码规范整理
May 05 Python
python实现AES加密解密
Mar 28 Python
python项目对接钉钉SDK的实现
Jul 15 Python
复化梯形求积分实例——用Python进行数值计算
Nov 20 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
python pandas 时间日期的处理实现
Jul 30 #Python
Django 反向生成url实例详解
Jul 30 #Python
Python Pandas数据中对时间的操作
Jul 30 #Python
python tkinter实现彩球碰撞屏保
Jul 30 #Python
详解python pandas 分组统计的方法
Jul 30 #Python
python文档字符串(函数使用说明)使用详解
Jul 30 #Python
python3.6 tkinter实现屏保小程序
Jul 30 #Python
You might like
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python实现选择排序
2017/06/04 Python
详解Python import方法引入模块的实例
2017/08/02 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
python 模拟登陆github的示例
2020/12/04 Python
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
最新大学生自我评价
2013/09/24 职场文书
根叔历年演讲稿
2014/05/20 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python