python实现简单倒计时功能

 更新时间:2021年04月20日 17:17:10   作者:一条小白鱼  
这篇文章主要为大家详细介绍了python实现简单倒计时功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

使用python实现简单倒计时exe,供大家参考,具体内容如下

使用tkinter制作界面实现倒计时功能。

  • 使用time.sleep(1)实现 秒级 倒计时
  • 使用线程避免界面卡死
  • 在线程的循环中检测全局标志位,保证计时线程的重置、以及退出
  • 使用pyinstaller -F file.py -w 生成exe文件,-w表示隐藏控制台,-F表示生成单文件

代码如下:

#!/usr/bin/python3.8
# -*- coding: utf-8 -*-
# @Time    : 2021/4/19 14:09
# @Author  : dongdong
# @File    : CountdownGUI.py
# @Software: PyCharm

from tkinter import *
import time
import threading
def cyclethread():
    global counttime
    global restartflag
    global runflag
    restartflag=False

    if (timestr.get().isdigit()):
        counttime = int(timestr.get()) * 60
    else:
        runflag=False
        return;
    while (1):
        if(restartflag):
            counttime = int(timestr.get()) * 60
            restartflag=False
        if(exitflag):
            sys.exit()

        counttime=counttime-1
        v='\nleft time:'+str(counttime//60)+' :'+str(counttime%60)
        textshow.set(v)
        root.update()
        if (counttime <= 0):
            runflag = False
            return
        time.sleep(1)

def startCount():
    global  restartflag
    global runflag
    restartflag=True
    if( not runflag):
        th=threading.Thread(target=cyclethread)
        th.setDaemon(True)
        th.start()
        runflag = True

def exitfun():
    global exitflag
    exitflag=True
    sys.exit()

restartflag=False
exitflag=False
counttime=None
runflag=False
root=Tk()
root.geometry('250x120')
root.title('TimeCounter')

timestr = StringVar(value="30")
textshow=StringVar(value='\nCountDown:30min ')

text0=Label(root,text='Input time(min):').grid(row=0,column=0,columnspan=3)
entext=Entry(root,textvariable=timestr).grid(row=0,column=3,columnspan=1)

# bnframe=ttk.Frame(root).grid(row=1,column=0,columnspan=4)
stbn=Button(root,text='Start',command=startCount).grid(row=1,column=2,columnspan=1)
enbn=Button(root,text='Exit',command=exitfun).grid(row=1,column=3,columnspan=1)

text=Label(root,textvariable=textshow).grid(row=2,column=0,columnspan=4)
root.mainloop()

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

相关文章

  • Anaconda安装之后Spyder打不开解决办法(亲测有效!)

    Anaconda安装之后Spyder打不开解决办法(亲测有效!)

    这篇文章主要给大家介绍了关于Anaconda安装之后Spyder打不开解决办法,文中将解决的过程介绍的非常详细,亲测有效,对同样遇到这个问题的朋友具有一定的参考学习价值,需要的朋友可以参考下
    2023-04-04
  • Python实现图像增强

    Python实现图像增强

    这篇文章主要为大家详细介绍了Python实现图像增强,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • pycharm通过anaconda安装pyqt5的教程

    pycharm通过anaconda安装pyqt5的教程

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,这篇文章主要介绍了pycharm通过anaconda来安装pyqt5的教程,需要的朋友可以参考下
    2020-03-03
  • 解决Django加载静态资源失败的问题

    解决Django加载静态资源失败的问题

    今天小编就为大家分享一篇解决Django加载静态资源失败的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录

    Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录

    MongoEngine是一个对象文档映射器(ODM),相当于一个基于SQL的对象关系映射器(ORM),下面这篇文章主要给大家介绍了关于Python利用ORM控制MongoDB(MongoEngine)的相关资料,需要的朋友可以参考下
    2018-09-09
  • pytorch中使用LSTM详解

    pytorch中使用LSTM详解

    这篇文章主要介绍了pytorch中使用LSTM,可以在troch.nn模块中找到LSTM类,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • python设计微型小说网站(基于Django+Bootstrap框架)

    python设计微型小说网站(基于Django+Bootstrap框架)

    这篇文章主要介绍了python设计微型小说网站(基于Django+Bootstrap框架),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • pandas如何统计某一列或某一行的缺失值数目

    pandas如何统计某一列或某一行的缺失值数目

    这篇文章主要介绍了pandas如何统计某一列或某一行的缺失值数目,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python Pandas知识点之缺失值处理详解

    Python Pandas知识点之缺失值处理详解

    这篇文章主要给大家介绍了关于Pandas知识点之缺失值处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • python在windows调用svn-pysvn的实现

    python在windows调用svn-pysvn的实现

    本文主要介绍了python在windows调用svn-pysvn的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论