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实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
Python中easy_install 和 pip 的安装及使用
Jun 05 Python
对numpy中轴与维度的理解
Apr 18 Python
解决python 输出是省略号的问题
Apr 19 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
利用Python的turtle库绘制玫瑰教程
Nov 23 Python
Python-for循环的内部机制
Jun 12 Python
python使用布隆过滤器的实现示例
Aug 20 Python
浅析python函数式编程
Sep 26 Python
python实现图片转字符画的完整代码
Feb 21 Python
在pyCharm中下载第三方库的方法
Apr 18 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
操作Oracle的php类
2006/10/09 PHP
PHP脚本数据库功能详解(上)
2006/10/09 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
php实现异步数据调用的方法
2015/12/24 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
python实现字符串中字符分类及个数统计
2018/09/28 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
python将图片转base64,实现前端显示
2020/01/09 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
机械专业应届生求职信
2013/09/21 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
校庆标语集锦
2014/06/25 职场文书
导游词格式
2015/02/13 职场文书
《绝招》教学反思
2016/02/20 职场文书