python实现简单倒计时功能


Posted in Python onApril 21, 2021

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

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

python实现简单倒计时功能

  • 使用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()

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

Python 相关文章推荐
Python映射拆分操作符用法实例
May 19 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
python使用threading.Condition交替打印两个字符
May 07 Python
python实现登录密码重置简易操作代码
Aug 14 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
Oct 17 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
Python PyQt5整理介绍
Apr 01 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
jupyter 添加不同内核的操作
Feb 06 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
杏林同学录(八)
2006/10/09 PHP
给初学PHP的5个入手程序
2006/11/23 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
2017/02/28 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
六个窍门助你提高Python运行效率
2015/06/09 Python
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
用python实现的线程池实例代码
2018/01/06 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
化学学院毕业生自荐信范文
2013/12/17 职场文书
家电业务员岗位职责
2014/03/10 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python