python实现屏保计时器
什么都不说先上图吧,Python 初学者实现屏保计时器
原理:利用 Python turtle 库实现快速画图,每隔一秒钟擦除屏幕,然后获得电脑实时时间,再次画图,呈现动态时间。
关于数字如果画,可以把数字理解为一个晶体管状的 8(7segments),不同数字都是其演变而来,只不过对不同数字实现抬笔,落笔动作,可以对不同
import turtle, time
def drawGap():
turtle.penup()
turtle.fd()
def drawLine(draw):
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd()
drawGap()
turtle.right()
def drawDigit(d):
drawLine(True) ,,,,,,] else drawLine(False) #g
drawLine(True) ,, , , , ,, , ] else drawLine(False) #c
drawLine(True) , , , , , , ] else drawLine(False) #d
drawLine(True) ,,,] else drawLine(False) #e
turtle.left() #经历一次右转后,调整左转,方向竖直向上
drawLine(True) ,,,,,] else drawLine(False)
drawLine(True) ,,,,,,,] else drawLine(False)
drawLine(True) ,,,,,,,] else drawLine(False)
turtle.left()
turtle.penup()
turtle.fd()
def drawDate(date):
turtle.pencolor('red')
for i in date:
if i == '-':
turtle.write(,'normal'))
turtle.pencolor('green')
turtle.fd()
elif i == '=':
turtle.write(, 'normal'))
turtle.pencolor('blue')
turtle.fd()
elif i == '+':
turtle.write(, 'normal'))
turtle.pencolor('yellow')
else:
drawDigit(eval(i))
def init():
turtle.setup(,,,) #设置画布大小 为屏幕位置
turtle.speed()
turtle.penup()
turtle.,)
turtle.fd(-)
turtle.pensize()
def main():
while True:
turtle.clear()
init()
time_string = time.strftime("%H-%M=%S+", time.localtime())
turtle.getscreen().tracer(,)
drawDate(time_string) #格式化时间 -=+ 控制输入年日月
time.sleep()
turtle.hideturtle()
main()
最后可以利用 pyinstaller 库实现 Python 程序 exe 软件化。
:\>pip install pyinstaller :\>pyinstaller D:\codes\dpython.py :\>pyinstaller -F dpython.py //可以通过-F 参数对 Python 源文件生成一个独立的可执行文件
作者:rottengeek
原文链接:http://t.cn/RD2bP69

python实现屏保计时器的更多相关文章
- python写的屏保程序
__author__ = 'ChenYan' from random import randint from tkinter import * class Randball(): def __init ...
- 一个仿windows泡泡屏保的实现
一个仿windows泡泡屏保的实现 有天看到有人在百度知道上问windows 泡泡屏保该怎么用C#做,一时有趣,就做了一个出来,对于其中几个要点总结如下: 一,屏保程序的制作要求 屏保程序的扩展名是. ...
- Winform中实现自定义屏保效果(附代码下载)
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建form ...
- C#制作简易屏保
前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...
- 仿W8屏保
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Linux关闭休眠和屏保模式
本人因为特殊需求,想让某台Linux主机始终显示某个程序,显示器不能关机或者休眠或进入屏保模式. 环境:Ubuntu 11.10 最小化模式安装并安装有轻量级桌面openbox(非gnome).因为X ...
- [AIR] AS3.0设置屏保功能
package com.controls { import flash.desktop.NativeApplication; import flash.events.Event; import fla ...
- Win XP 如何禁用屏保
如果你试过 “在桌面空白处点击右键-[属性]-[屏幕保护程序],选择[无],点击[确定]”后,当时是可以去掉屏保.但如果重启计算机或者从待机状态唤醒后,屏保依然会出现,那么你可以试试下面的方法. 首先 ...
- wpf 制作播放视频的屏保程序、而且能分屏显示
这个程序用到了WPF里 “visual_Brush”(主要是为了实现分屏显示) , “UserControl” ,这两个知识点: 在屏保状态下播放指定文件夹下的视频,而且能分屏显示: 把编译好的屏保 ...
随机推荐
- Linux less/more命令详解
less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来 ...
- IM——技术方案
一. 即时通讯技术方案 1. 第三方SDK: 环信, 融云, 网易云信, 腾讯 中小型公司/初创型: 建议使用第三方. 好处: 快, 符合快速开发的需求, 自己和后台人员不需要做什么操作 缺点: 你的 ...
- Scala学习——Brief Scala Tutorial
因为Spark项目需要,学习Scala编程. 从官网文档入手:http://www.scala-lang.org/documentation/ 首先从他的Older Documentation入手. ...
- 51nod 1444 破坏道路(bfs+枚举)
1444 破坏道路 题目来源: CodeForces 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 在某一个国家,那儿有n个城市,他们通过m条双向 ...
- python第二十四课——set中的函数
集合中常用的一些函数: 1.add(obj):追加一个obj元素到集合中 pop():从集合中随机弹出一个元素 remove(obj):删除集合中和obj匹配的元素 clear():清空集合 s1={ ...
- 将jpg压缩成webp格式的图片
cwebp名称 cwebp -压缩图像文件为的WebP文件概要 cwebp [选项] INPUT_FILE -o output_file.webp描述 cwebp压缩使用的WebP格式的图像.输入格式 ...
- 1415. [NOI2005]聪聪和可可【记忆化搜索DP】
Description Input 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点 ...
- juquery去除字符串前后的空格
1. 去掉字符串前后所有空格: 代码如下: function Trim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); }
- 输入一批考生的的准考证号码,如果是 15 位,表示输入正确,否则重新输入。然后判断这个人的考试类别(号码中如果是以奇数结尾则考试类别为“A 类”,否则为“B 类”),最后输出此准考证的前 5 位和后 4 位,其他位用“*”来代替。说明:使用 StringBuffer 类的相关方法完成实验内容。
因为是一批考生,所以先创建一个字符数组存放一组准考证号. 此外这个程序涉及到包装类与基本数据类型的互相转换. string的substring方法,返回一个字符串是该字符串的子串.从第一个参数开始,第 ...
- 700. Search in a Binary Search Tree
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = ...