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处理json数据中的中文
Mar 06 Python
Python进程通信之匿名管道实例讲解
Apr 11 Python
python xml解析实例详解
Nov 14 Python
Python 基础之字符串string详解及实例
Apr 01 Python
深入理解Python中的super()方法
Nov 20 Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
Django实现文件上传下载
Oct 06 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
javascript正则表达式总结
2016/02/29 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
python脚本内运行linux命令的方法
2015/07/02 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
python中time库的实例使用方法
2019/10/31 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
新闻专业本科生的自我评价分享
2013/11/20 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
维稳承诺书
2015/01/20 职场文书
聘任证明怎么写
2015/03/02 职场文书
调解书格式范本
2015/05/20 职场文书
小鞋子观后感
2015/06/05 职场文书
2019消防宣传标语!
2019/07/10 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python