python3.6小程序_python3.6 tkinter实现屏保小程序
本文实例为大家分享了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实现屏保小程序相关推荐
- Python实战:利用Tkinter实现屏保程序
利用Tkinter实现彩球碰撞屏保 一.架构与思路 (1)主函数: main():通过类启动程序: (2)类: ScreenSaver():用于定义屏保和主画布,调用球创建.运动等函数: Random ...
- 删除桌面计算机,电脑设置小技巧(多余壁纸、屏保删除方法)
1.电脑桌面壁纸的删除方法 XP系统进入C:\WINDOWS\Web\Wallpaper...把里面不要的图片删除,就行了. 右键点击桌面-属性-背景-点你不要的那个背景壁纸-点击浏览(可以看见你不要 ...
- Windows7和Windows10设置屏保保护程序-冒泡
windows10和Windows7一样设置方式! 在Windows 7中系统自带的气泡屏保应该算是最受用户喜爱的自带屏保,其实这个透明的气泡通过一点修改变可以变为具有金属质感的泡泡. 实现方法也非常 ...
- tkinter tkinter 制作屏保制作屏保
今天看到的,随手转一下 import random import tkinterclass RandomBall():'''定义球的类'''def __init__(self, canvas, scr ...
- 用vue2.6实现一个抖音很火的【时间轮盘】屏保小DEMO
写在前面: 前段时间看抖音,有人用时间轮盘作为动态的桌面壁纸,一时间成为全网最火的电脑屏保,后来小米等运用市场也出现了[时间轮盘],有点像五行八卦,感觉很好玩,于是突发奇想,自己写一个网页版小DEMO ...
- python3.6运行界面_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 --------原创 blogs: http://www.cnblogs.com/chenyueb ...
- 会导致小程序onhide码 手机息屏_小程序onshow事件
问题描述 onShow 事件在小程序里面非常重要,场景之多,导致处理起来很复杂.很多业务场景依赖与onShow与onHide事件.比如分享给他人,在群里PK等等. 息屏,新页面返回.Home键操作,也 ...
- 电脑所有程序里有不一样颜色_12个好玩的电脑屏保,让你成为别人眼中最靓的仔。...
Hello 大家好,这里是工具狂人.作为一个靠打字(哦不,搬砖)为生的新媒体小编,每天多数时候都是对着电脑屏幕,中途有时会拿起手机回复消息.查看短信.刷起微博.刷手机的时间一长,眼前的电脑会自动打开系 ...
- From .1:从屏保到Win平台开发 - 一个可运行的C#屏保程序
有一天在微信里看见了微软的Fluent Design系统(腾讯翻译为浸流设计系统)界面设计的一张图片,觉得非常好看,顿时想,这么好看的界面,如果能是一个屏保该有多好.这样的话,用户坐在电脑前也不会忍心 ...
最新文章
- 单向链表的 js 实现
- RMAN的设置引起删除归档日志无法删除的错误
- audiorecord怎么释放_Android 开发 AudioRecord音频录制
- [css] 使用css如何设置背景虚化?
- DB主从一致性架构优化4种方法
- 循环计数_倒计数器:CountDownLatch | 循环栅栏:CyclicBarrier
- python文件批量重命名以数字~n的方式重命名_利用Python对文件进行批量重命名
- Spring简单的文件配置
- HoloLens开发手记-世界坐标系 Coordinate systems
- jupyter notebook 内核挂掉
- iOS开发之UITextField(输入框)限制只能输入整数和小数
- Java中的队列API——Queue
- C#中根据传入的字符串字段返回实体Lambda表达式
- do something for your dream
- SQL SERVER: 合并相关操作(Union,Except,Intersect)
- 2022年中青杯B题数学建模文档及程序-三孩生育数学建模
- Navicat或PLSQL如何导出表结构到Excel中
- Oracle的卸载步骤(详细图示)
- 女程序员是最好的语言 | 3·8特辑
- 课程实验三-bomb实验
热门文章
- 弱类型语言的优势:C#的委托概念在Javascript中的实现
- 《Ext JS权威指南》印出来了,大家很快就能拿到书了
- ZOJ 2849 Attack of Panda Virus (优先队列 priority_queue)
- 计算机硬件四大部分组成部分,2014考研计算机大纲 组成原理部分四大变化解析...
- java resume过时方法_学点开发|关于Java多线程用法解析
- TensorFlow 资源汇集
- 3.1 关于半鞅的随机积分(Ren)
- android phone驱动_一文带你掌握 Android 系统架构
- Java注释 link_开源代码中注释中的那些a link p @ 是给什么编辑器用的????
- STM32 基础系列教程 30 - 文件系统