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中title()方法的使用简介
May 20 Python
Python环境下安装使用异步任务队列包Celery的基础教程
May 07 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 Python
python实现ftp文件传输功能
Mar 20 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
python爬虫中的url下载器用法详解
Nov 30 Python
pandas中DataFrame重置索引的几种方法
May 24 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
php使用GeoIP库实例
2014/06/27 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
2017/04/13 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
python生成器generator用法实例分析
2015/06/04 Python
详解python3百度指数抓取实例
2016/12/12 Python
Python实现抢购IPhone手机
2018/02/07 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
南京迈特望C/C++面试题
2012/07/09 面试题
集团公司人力资源部岗位职责
2014/01/03 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
英语教师自荐信
2014/05/26 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android
MySQL优化之慢日志查询
2022/06/10 MySQL