本文实例为大家分享了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('',self.exit_screensaver)

self.win.bind('',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()

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

python3.6小程序_python3.6 tkinter实现屏保小程序相关推荐

  1. Python实战:利用Tkinter实现屏保程序

    利用Tkinter实现彩球碰撞屏保 一.架构与思路 (1)主函数: main():通过类启动程序: (2)类: ScreenSaver():用于定义屏保和主画布,调用球创建.运动等函数: Random ...

  2. 删除桌面计算机,电脑设置小技巧(多余壁纸、屏保删除方法)

    1.电脑桌面壁纸的删除方法 XP系统进入C:\WINDOWS\Web\Wallpaper...把里面不要的图片删除,就行了. 右键点击桌面-属性-背景-点你不要的那个背景壁纸-点击浏览(可以看见你不要 ...

  3. Windows7和Windows10设置屏保保护程序-冒泡

    windows10和Windows7一样设置方式! 在Windows 7中系统自带的气泡屏保应该算是最受用户喜爱的自带屏保,其实这个透明的气泡通过一点修改变可以变为具有金属质感的泡泡. 实现方法也非常 ...

  4. tkinter tkinter 制作屏保制作屏保

    今天看到的,随手转一下 import random import tkinterclass RandomBall():'''定义球的类'''def __init__(self, canvas, scr ...

  5. 用vue2.6实现一个抖音很火的【时间轮盘】屏保小DEMO

    写在前面: 前段时间看抖音,有人用时间轮盘作为动态的桌面壁纸,一时间成为全网最火的电脑屏保,后来小米等运用市场也出现了[时间轮盘],有点像五行八卦,感觉很好玩,于是突发奇想,自己写一个网页版小DEMO ...

  6. python3.6运行界面_python3.6 +tkinter GUI编程 实现界面化的文本处理工具

    更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 --------原创 blogs: http://www.cnblogs.com/chenyueb ...

  7. 会导致小程序onhide码 手机息屏_小程序onshow事件

    问题描述 onShow 事件在小程序里面非常重要,场景之多,导致处理起来很复杂.很多业务场景依赖与onShow与onHide事件.比如分享给他人,在群里PK等等. 息屏,新页面返回.Home键操作,也 ...

  8. 电脑所有程序里有不一样颜色_12个好玩的电脑屏保,让你成为别人眼中最靓的仔。...

    Hello 大家好,这里是工具狂人.作为一个靠打字(哦不,搬砖)为生的新媒体小编,每天多数时候都是对着电脑屏幕,中途有时会拿起手机回复消息.查看短信.刷起微博.刷手机的时间一长,眼前的电脑会自动打开系 ...

  9. From .1:从屏保到Win平台开发 - 一个可运行的C#屏保程序

    有一天在微信里看见了微软的Fluent Design系统(腾讯翻译为浸流设计系统)界面设计的一张图片,觉得非常好看,顿时想,这么好看的界面,如果能是一个屏保该有多好.这样的话,用户坐在电脑前也不会忍心 ...

最新文章

  1. 单向链表的 js 实现
  2. RMAN的设置引起删除归档日志无法删除的错误
  3. audiorecord怎么释放_Android 开发 AudioRecord音频录制
  4. [css] 使用css如何设置背景虚化?
  5. DB主从一致性架构优化4种方法
  6. 循环计数_倒计数器:CountDownLatch | 循环栅栏:CyclicBarrier
  7. python文件批量重命名以数字~n的方式重命名_利用Python对文件进行批量重命名
  8. Spring简单的文件配置
  9. HoloLens开发手记-世界坐标系 Coordinate systems
  10. jupyter notebook 内核挂掉
  11. iOS开发之UITextField(输入框)限制只能输入整数和小数
  12. Java中的队列API——Queue
  13. C#中根据传入的字符串字段返回实体Lambda表达式
  14. do something for your dream
  15. SQL SERVER: 合并相关操作(Union,Except,Intersect)
  16. 2022年中青杯B题数学建模文档及程序-三孩生育数学建模
  17. Navicat或PLSQL如何导出表结构到Excel中
  18. Oracle的卸载步骤(详细图示)
  19. 女程序员是最好的语言 | 3·8特辑
  20. 课程实验三-bomb实验

热门文章

  1. 弱类型语言的优势:C#的委托概念在Javascript中的实现
  2. 《Ext JS权威指南》印出来了,大家很快就能拿到书了
  3. ZOJ 2849 Attack of Panda Virus (优先队列 priority_queue)
  4. 计算机硬件四大部分组成部分,2014考研计算机大纲 组成原理部分四大变化解析...
  5. java resume过时方法_学点开发|关于Java多线程用法解析
  6. TensorFlow 资源汇集
  7. 3.1 关于半鞅的随机积分(Ren)
  8. android phone驱动_一文带你掌握 Android 系统架构
  9. Java注释 link_开源代码中注释中的那些a link p @ 是给什么编辑器用的????
  10. STM32 基础系列教程 30 - 文件系统