python tkinter窗口程序设计实战(一)--计时器

发布于:2022-12-14 ⋅ 阅读:(1099) ⋅ 点赞:(0)

刷词程序小模块---计时器

文章目录

前言

一、计时器的原理

二、步骤

1.引入库

2.代码示例(含注释)

三、效果图



前言

        因为自己英语水平不高,又即将面临着一个很重要的英语考试,所以突发奇想自己做一个刷单词的程序,而这个程序也就应运而生了。本文章主要介绍我做的一个小模块--计时器功能。在做的时候我参照了几个博主的文档,收益良多,现在就介绍在本文。


一、计时器的原理

时间戳

        学过编程的都应该知道有这么一个东西叫做时间戳,时间戳是从1970年1月1日期所有秒的和,在计算机中计时,主要计是对时间戳的计算。

        好比现在2022-09-17 23:34的时间戳大概就是1663428902,而我们计时就记录这个时间点,然后每过多少毫秒去刷新一次时间戳,用新的时间戳减去开始记录的时间戳就OK了,就得到我们的计时了。

二、步骤

1.引入库

这里我们只需要两个库,一个是tkinter库,另一个用来获取时间戳的time库,在做计时器时,我们需要用到tkinter的一个after方法,这个方法可以设置多少时间后自动调用一次指定函数。

from tkinter import *
import time

2.代码示例(含注释)

废话不多说,直接上代码(这里只是我程序的部分代码,完整代码,请持续关注我)

from tkinter import *
import time


class ji(Frame):  # 继承Frame类
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.root = master  # 定义内部变量root
        self.root.geometry('%dx%d' % (600, 620))  # 设置窗口大小
        self.tt = StringVar()  # 时间  计时
        self.tt.set('00:00')  # 设置初始时间
        self.st = 0  # 开始时的时间戳
        self.el = 0  # 当前时间戳
        self.timer = None
        self.creatPage()

    # 秒钟化分钟函数
    def fen(self, op):
        op = op // 1
        op = int(op)
        if op < 60:
            if op >= 10:
                return '00:{}'.format(op)
            else:
                return '00:0{}'.format(op)
        else:
            temp = op // 60
            tem = op % 60
            if temp >= 10:
                if tem >= 10:
                    return '{}:{}'.format(temp, tem)
                else:
                    return '{}:0{}'.format(temp, tem)
            else:
                if tem >= 10:
                    return '0{}:{}'.format(temp, tem)
                else:
                    return '0{}:0{}'.format(temp, tem)

    # 计算时间戳函数
    def uu(self):
        self.el = time.time() - self.st  # 计时所得到的的秒的总数
        self.tt.set(self.fen(self.el))  # 更新新的时间
        self.timer = self.root.after(50, self.uu)  # 在给定时间后调用函数一次。50毫秒

    # 开始函数
    def start(self):
        self.st = time.time() - self.el  # 计时开始的时间戳
        self.uu()  # 调用计算时间戳的函数

    def creatPage(self):
        self.start()
        tk = Label(self, text='你已经学习:')
        tk.grid(row=0, column=0, stick=W)
        tk2 = Label(self, textvariable=self.tt)
        tk2.grid(row=0, column=1, stick=E)

三、效果图

 

程序还没有写完,稍后将完整代码及打包程序发出