python3.6 tkinter实现屏保小程序


Posted in Python onJuly 30, 2019

本文实例为大家分享了python3.6 tkinter实现屏保小程序,供大家参考,具体内容如下

该小程序是在闲着没事的时候,随便写的,就当打发无聊了。

该程序是用python3.6写的,调用了python中的tkinter的库(*python2x与python3x的thinter有很多不同的地方,一定要特别注意!!!)

from random import randint
from tkinter import *

class Randball():
  def __init__(self,canvas,scrnwidth,scrnheight):
    #初始化画布
    self.canvas = canvas
    #初始化球的圆心坐标
    self.x_pos = randint(50,int(scrnwidth))#X轴的坐标 randint 随机产生一个范围内的整数
    self.y_pos = randint(50,int(scrnheight))#Y轴的坐标
    #球的移动距离
    self.x_move = 10
    self.y_move = 10
    #整个屏幕的高和宽
    self.scrnwidth =scrnwidth
    self.scrnheight =scrnheight
    #初始化球的半径
    self.randius = randint(10,80)
    #随机产生球的颜色
    rc = lambda : randint(0,255)
    self.color = '#%02x%02x%02x'%(rc(),rc(),rc())
  def create_ball(self):
    #计算得到用于创建球的四个坐标
    x1 = self.x_pos - self.randius
    y1 = self.y_pos - self.randius
    x2 = self.x_pos + self.randius
    y2 = self.y_pos + self.randius
    #画球
    self.item =self.canvas.create_oval(x1,y1,x2,y2,fill = self.color,outline = self.color)

  def move_ball(self):
    #球按照指定距离移动,如果碰到障碍就向相反的方向运动
    self.x_pos += self.x_move
    self.y_pos += self.y_move
    if self.x_pos >= self.scrnwidth - self.randius:
      self.x_move = -self.x_move
    elif self.y_pos >= self.scrnheight - self.randius:
      self.y_move = -self.y_move
    elif self.x_pos < self.randius:
      self.x_move = abs(self.x_move)
    elif self.y_pos < self.randius:
      self.y_move = abs(self.y_move)
    self.canvas.move(self.item,self.x_move,self.y_move)


class Screensaver():
  balls = []
  def __init__(self,ball_nums):
    self.win = Tk()
    self.width = self.win.winfo_screenwidth()
    self.height = self.win.winfo_screenheight()
    self.win.overrideredirect(True)
    self.win.attributes('-alpha',1)
    #绑定事件,有任何动作退出屏保
    self.win.bind('<Any-Button>',self.exit_screensaver)
    self.win.bind('<Motion>',self.exit_screensaver )
    self.canvas = Canvas(self.win,width = self.width,height = self.height,bg="#FFFFFF")#背景 颜色自己随便调整,至于啥颜色就看自己的心情了
    self.canvas.pack()


    for i in range(0,ball_nums):
        ball = Randball(self.canvas,scrnwidth=self.width,scrnheight=self.height)
        ball.create_ball()
        self.balls.append(ball)
    self.run_screensaver()
    self.win.mainloop()
  def run_screensaver(self):
    for ball in self.balls:
      ball.move_ball()
    self.canvas.after(30,self.run_screensaver)
  def exit_screensaver(self,event):
    self.win.destroy()

def main():
  Screensaver(30)#屏保上球的个数

if __name__=='__main__':
  main()

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

Python 相关文章推荐
详解Python中的__init__和__new__
Mar 12 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
基于Python实现的微信好友数据分析
Feb 26 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
使用python3实现操作串口详解
Jan 01 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
python实现梯度法 python最速下降法
Mar 24 Python
Python中qutip用法示例详解
Oct 02 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 Python
简单了解python变量的作用域
Jul 30 #Python
学习和使用python的13个理由
Jul 30 #Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 #Python
python利用tkinter实现屏保
Jul 30 #Python
django 微信网页授权登陆的实现
Jul 30 #Python
python tkinter库实现气泡屏保和锁屏
Jul 29 #Python
django迁移数据库错误问题解决
Jul 29 #Python
You might like
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
实例解析Array和String方法
2016/12/14 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
Vue中实现权限控制的方法示例
2019/06/07 Javascript
Vue的Options用法说明
2020/08/14 Javascript
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
医院护士的求职信
2014/01/03 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
2014年村官工作总结
2014/11/24 职场文书
公司会议开幕词
2015/01/29 职场文书
同学聚会邀请函
2015/01/30 职场文书
阿凡达观后感
2015/06/10 职场文书
MySql数据库 查询时间序列间隔
2022/05/11 MySQL