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练习程序批量修改文件名
Jan 16 Python
Python警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
Python实现的简单算术游戏实例
May 26 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
python实现音乐下载的统计
Jun 20 Python
Python实现多属性排序的方法
Dec 05 Python
Python Excel处理库openpyxl使用详解
May 09 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
Keras loss函数剖析
Jul 06 Python
python中的错误如何查看
Jul 08 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
取得父标签
2006/11/14 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
介绍下java.util.Arrays类
2012/10/16 面试题
英语自荐信范文
2013/12/11 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
股票投资建议书
2014/05/19 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
银行资信证明
2015/06/17 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
2015年国庆节寄语
2015/08/17 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server