zoukankan      html  css  js  c++  java
  • python计时器(打包exe即可)

    import time
    import tkinter
    from tkinter import *
    from tkinter.messagebox import *
    
    class StopWatch(Frame):
        msec = 100
        def __init__(self, parent=None, **kw):
            Frame.__init__(self, parent, kw)
            self._start = 0.0
            self._elapsedtime = 0.0
            self._running = False
            self.timestr = StringVar()
            self.makeWidgets()
            self.flag  = True
    
        def makeWidgets(self):
            '''制作时间标签'''
            # l = Label(self, textvariable = self.timestr,font=('Arial',150),width= 7,relief=GROOVE,borderwidth=12)
            l = Label(self, textvariable = self.timestr,font=('Arial',150),width= 7)
            self._setTime(self._elapsedtime)
            # l.pack(fill = X, expand = NO, pady = 150, padx = 150)
            l.pack(fill = X, expand = NO, pady = 100, padx = 100)
        def _update(self):
            self._elapsedtime = time.time() - self._start
            self._setTime(self._elapsedtime)
            self._timer = self.after(self.msec, self._update)
        def _setTime(self, elap):
            '''将时间格式改为 分:秒:百分秒'''
            minutes = int(elap/60)
            seconds = int(elap-minutes*60.0)
            hseconds = int((elap - minutes*60.0 - seconds) *100)
            self.timestr.set('%02d:%02d:%02d' %(minutes, seconds, hseconds))
        def Start(self):
            if not self._running:
                self._start = time.time() - self._elapsedtime
                self._update()
                self._running = True
        def Stop(self):
            '''停止秒表'''
            global count
            if self._running:
                count += 1
                self.after_cancel(self._timer)
                self._elapsedtime = time.time() - self._start
                self._setTime(self._elapsedtime)
                t.insert('end','第{}名:'.format(count) + self.timestr.get())
                t.insert(INSERT,'
    ')
                self._running = False
        def Reset(self):
            '''重设秒表'''
            self._start = time.time()
            self._elapsedtime = 0.0
            self._setTime(self._elapsedtime)
        def End(self):
            ''' 记录 '''
            global count
            if self._running:
                count += 1
                self.after_cancel(self._timer)
                self._elapsedtime = time.time() - self._start
                self._setTime(self._elapsedtime)
                t.insert('end','第{}名:'.format(count) + self.timestr.get())
                t.insert(INSERT,'
    ')
                self._update()
                self._running = True
        def dump(self):
            t.delete(1.0,'end')
            global count
            count = 0
        def stopwatch(self):
            if self.flag == True:
                self.pack(side = TOP)
                Button(self, text = '开始',font=("Consolas", 15),bg='Silver', command = self.Start).pack(side = LEFT)
                Button(self, text = '停止',font=("Consolas", 15),bg='Silver', command = self.Stop).pack(side = LEFT)
                Button(self, text = '记录',font=("Consolas", 15),bg='Silver', command = self.End).pack(side = LEFT)
                Button(self, text = '重置',font=("Consolas", 15),bg='Silver', command = self.Reset).pack(side = RIGHT)
                Button(self, text = '退出',font=("Consolas", 15),bg='Silver', command = self.quit).pack(side = RIGHT)
                Button(self, text = '清除',font=("Consolas", 15),bg='Silver', command = self.dump).pack(side = RIGHT)
            self.flag = False
    
    # class LoWatch(Frame):
    #     def lowatch(self):
    #         # if self.flag == True:
    #         self.pack(side = TOP)
    #         Button(self, text = '开始',font=("Consolas", 15),bg='DodgerBlue').pack(side = LEFT)
    #         Button(self, text = '停止',font=("Consolas", 15),bg='DodgerBlue').pack(side = LEFT)
    #         Button(self, text = '记录',font=("Consolas", 15),bg='DodgerBlue').pack(side = LEFT)
    #         Button(self, text = '重置',font=("Consolas", 15),bg='DodgerBlue').pack(side = RIGHT)
    #         Button(self, text = '退出',font=("Consolas", 15),bg='DodgerBlue').pack(side = RIGHT)
    #         Button(self, text = '清除',font=("Consolas", 15),bg='DodgerBlue').pack(side = RIGHT)
        # self.flag = False
    if __name__ == '__main__':
        count = 0
        root = Tk()
        root.title("比赛计时器")
        root.geometry("600x400")
        # root.configure(background='RoyalBlue')
        frame1 = Frame(root)
        frame1.pack(side = BOTTOM)
        sw = StopWatch(root)
        # nw = LoWatch(root)
        stpwtch = Button(frame1, text = '记时', command = sw.stopwatch,font=('Arial', 10))
        # lopwtch = Button(root, text = '倒计时', command = nw.lowatch,font=('Arial', 10))
        stpwtch.pack(side = LEFT)
        # lopwtch.pack(side = BOTTOM)
        # stpwtch.place(x=300,y=650)
        # lopwtch.place(x=350,y=650)
        t = tkinter.Text(frame1, height=10, width=60,font=("Consolas", 12),autoseparators=False, undo=True, maxundo=10)
        t.pack(pady = 50, padx = 50)
        # t.pack()
        root.mainloop()
  • 相关阅读:
    华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀
    没有它你的DevOps是玩不转的,你信不?
    开发实践丨用小熊派STM32开发板模拟自动售货机
    【基于C#的ASP.NET】错误篇1——用户系统+管理员系统CS1061: “ASP.manage_aspx”不包含“SqlDataSource1_Selecting”的定义
    阿里云高级技术专家白常明:边缘云的技术挑战和应用创新
    T级内存,创建效率提升10倍以上,阿里云 KVM异构虚拟机启动时间优化实践
    终极清单来了!阿里云双11爆款揭晓
    2020阿里云双110.73折起,爆款提前抢大促全攻略
    直面最大挑战双11 阿里数据中台为商家带来确定性保障
    OpenYurt 深度解读:如何构建 Kubernetes 原生云边高效协同网络?
  • 原文地址:https://www.cnblogs.com/bear-king/p/14961975.html
Copyright © 2011-2022 走看看