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实现的去除win下文本文件头部BOM的代码
Feb 10 Python
Python在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
Python脚本实现自动发带图的微博
Apr 27 Python
Python优化技巧之利用ctypes提高执行速度
Sep 11 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
Jun 09 Python
浅析python参数的知识点
Dec 10 Python
Python构建图像分类识别器的方法
Jan 12 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
python3中的logging记录日志实现过程及封装成类的操作
May 12 Python
golang/python实现归并排序实例代码
Aug 30 Python
运行Python编写的程序方法实例
Oct 21 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
laravel 数据验证规则详解
2019/10/23 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
一些常用的Javascript函数
2006/12/22 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
使用python装饰器验证配置文件示例
2014/02/24 Python
Python函数返回值实例分析
2015/06/08 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
初中同学聚会邀请函
2014/02/03 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
三方协议书范本
2014/04/22 职场文书
优秀员工推荐信
2014/05/10 职场文书
婚育证明样本
2015/06/16 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python