python tkinter实现屏保程序

本文实例为大家分享了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)

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

(0)

相关推荐

  • python实现屏保计时器的示例代码

    什么都不说先上图吧,Python初学者实现屏保计时器 原理:利用Python turtle库实现快速画图,每隔一秒钟擦除屏幕,然后获得电脑实时时间,再次画图,呈现动态时间. 关于数字如果画,可以把数字理解为一个晶体管状的8(7segments),不同数字都是其演变而来,只不过对不同数字实现抬笔,落笔动作,可以对不同 import turtle, time def drawGap(): turtle.penup() turtle.fd(5) def drawLine(draw): drawGap(

  • 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,canv

  • python tkinter库实现气泡屏保和锁屏

    本文实例为大家分享了python tkinter库实现气泡屏保和锁屏的具体代码,供大家参考,具体内容如下 显示效果如下: 代码: import random import tkinter import threading from ctypes import * class RandomBall(object): """ 定义关于球的类 """ def __init__(self, canvas, screen_width, screen_hei

  • python tkinter实现彩球碰撞屏保

    利用Tkinter实现彩球碰撞屏保 一.架构与思路 (1)主函数: main():通过类启动程序: (2)类: ScreenSaver():用于定义屏保和主画布,调用球创建.运动等函数: RandomBall():定义球的基本属性.球创建与运动函数: (3)对象:单个球,需要创建.运动(包括碰撞反弹),通过循环调用实现多个球并存的效果 create_ball():单个球创建函数: move_ball():单个球运动函数: (4)20181215更新:此处对原有屏保程序的退出环节进行了扩展,使用m

  • python利用tkinter实现屏保

    本文实例为大家分享了python利用tkinter实现屏保的具体代码,供大家参考,具体内容如下 import random import tkinter class RandomBall(): ''' 运动的球 ''' def __init__(self, canvas, scrn_width,scrn_heigh): ''' 球的构造函数 :param canvas: 传入画布,在画布上进行球的构造 :param scrn_width: 传入屏幕宽度 :param scrn_heigh: 传入

  • python tkinter实现屏保程序

    本文实例为大家分享了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 s

  • python实现屏保程序(适用于背单词)

    今天要给大家分享的是一款自己写的屏保程序,大学大家最头疼的就是四六级的考试了,上次考试做阅读的时候,情不自禁的发呆,想着如果我能在电脑上写一个屏保程序,那么就可以天天记单词了! 开始 首先:我们使用的是python自带的GUI模块,大部分操作网上都可以查到,对于写一些小的交互程序是完全够了.首先我们来定义一个类,这个类可以实列出一个屏幕显示对象,我把它称为Screensaver(). from tkinter import * import tkinter.font as tkFont # 导入

  • python+tkinter编写电脑桌面放大镜程序实例代码

    本文讲述的是通过python+tkinter编写一个简单桌面放大镜的代码示例,具体如下. 代码思路:首先全屏截图,然后在鼠标当前位置以小窗口进行二次截图,放大后再显示到鼠标左上角. 主要技术:全屏截图,指定区域截图,绑定鼠标事件,绘制图像. 建议大家照着代码敲一遍,然后运行试试.代码有一点点小瑕疵,试着发现并尝试解决. 总结 以上就是本文关于Python+tkinter编写电脑桌面放大镜程序实例代码的全部内容,希望对大家有所帮助.感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指

  • 基于python tkinter的点名小程序功能的实例代码

    代码如下所示: import datetime import json import os import random import tkinter as tk import openpyxl # 花名册文件名 excel_file_path = "花名册.xlsx"#需在当前目录创建对应花名册.xlsx # 工作表名 excel_sheet = "Sheet1" # 记录存储文件名 file_path = "name_record.json"

  • 利用Python制作自已的动态屏保

    我的环境 win10 python3.X pycharm 1.编写自己的屏保程序 注意:屏保程序打开就是全屏,可自动循环播放 我的样子如图 1.代码准备 Gitee下载 import os # 必须在加载 加之前 os.environ['SDL_VIDEO_WINDOW_POS'] = "%d, %d" % (0, 30) import random import pygame from pygame.locals import * from math import pi, sin,

  • c#制作屏幕保护程序步骤(字幕屏保)

    屏幕保护程序的扩展名虽然是"scr",但其实是一个可执行的"exe"文件.但他又是一个比较独特的"exe"文件.下面就来探讨一下,用C#是如何编写屏幕保护的整个过程. 二.C#编写字幕显示屏保程序的关键步骤以及解决方法:(1)设定程序的窗体符合屏幕保护的要求:由于屏幕保护程序就是一个可执行程序,所以在编写屏幕保护程序的时候,首先按照可执行程序来设计.但屏幕保护有自身的特点.譬如:屏幕保护都是充满整个屏幕的,并且没有无边.屏幕保护运行的时候,不能显

随机推荐