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利用递归和walk()遍历目录文件的方法示例
Jul 14 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
pandas 实现字典转换成DataFrame的方法
Jul 04 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
对python中的iter()函数与next()函数详解
Oct 18 Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 Python
详解python读取image
Apr 03 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
Python中格式化字符串的四种实现
May 26 Python
python中列表的含义及用法
May 26 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 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
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
jQuery插件 tabBox实现代码
2010/02/09 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
2019/12/11 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
毕业生自我鉴定范文
2013/11/08 职场文书
大学毕业感言一句话
2014/02/06 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
python用tkinter开发的扫雷游戏
2021/06/01 Python
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers