????????使用tkinter,我们还可以画一个简单的时钟,然后我们还可以将其打包成一个可执行的exe程序(以Windows平台为例,linux平台大同小异),然后单独运行它,把它放到桌面上,就可以当一个简易版的时钟了。代码如下,很多地方都有详细的注释,大家可以根据需要自己再添加修改一些内容,比如加个背景图,把其余数字也显示出来等。下面是一个效果截图:
? ? ? ? 在本例中,主要思路是先创建一个窗口,然后在窗口创建一个画布canvas,然后在一个无限循环中每秒钟在画布上更新一下时钟钟面,代码有点长,下面给出画三种时针的函数,完整代码还请移步我的资源区进行下载。这里是传送门
? ? ? ? 最后,可以用pyinstaller这个第三方库将其打包成可执行exe文件,pyinstaller可以直接通过pip install的方式进行安装,非常简单。进入到文件所在目录下,执行下面这行代码在同目录的dist目录下,就可以看到可执行文件了。
pyinstaller -F -w .\tkinter时钟.py
'''
@author: pip install USART
@software: Pycharm
@time: 2020/3/31 17:29
@filename: LexAnalyzer.py
'''
from json.tool import main
from tkinter import *
from datetime import datetime
import math as mh
from tkinter.tix import MAIN
def DrawHour(self):
#时针相对12点转过角度
H_angle = 30 * self.hours + 0.5 * self.minutes + 1 / 120 * self.seconds
#时针针头x,y坐标,设时针长100个像素
self.Hx = 200 + 100 * mh.sin((H_angle / 180) * mh.pi)
self.Hy = 200 - 100 * mh.cos((H_angle / 180) * mh.pi)
#画时针
self.canvas.create_line(200,200,self.Hx,self.Hy,
fill = "red",width = 8,tags = "时针")
def DrawMinute(self):
#分针相对12点转过角度
M_angle = self.minutes * 6 + self.seconds * 0.1
#分针针头x,y坐标,设分针长130个像素
self.Mx = 200 + 130 * mh.sin((M_angle / 180) * mh.pi)
self.My = 200 - 130 * mh.cos((M_angle / 180) * mh.pi)
#画分针
self.canvas.create_line(200,200,self.Mx,self.My,
fill = "blue",width = 4,tags = "分针")
def DrawSecond(self):
#秒针相对12点转动角度
S_angle = self.seconds * 6
#秒针针头的x,y坐标,设秒针长160个像素
self.Sx = 200 + 160 * mh.sin((S_angle / 180) * mh.pi)
self.Sy = 200 - 160 * mh.cos((S_angle / 180) * mh.pi)
#画秒针
self.canvas.create_line(200,200,self.Sx,self.Sy,
fill = "black",width = 2,tags = "秒针")
|