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环境配置及项目建立
Jun 30 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
python 编码规范整理
May 05 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 Python
Python 3.8 新功能全解
Jul 25 Python
Pytorch evaluation每次运行结果不同的解决
Jan 02 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
python next()和iter()函数原理解析
Feb 07 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 Python
python 如何使用find和find_all爬虫、找文本的实现
Oct 16 Python
Python编写冷笑话生成器
Apr 20 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
php之字符串变相相减的代码
2007/03/19 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Angular开发者指南之入门介绍
2017/03/05 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
python正则表达式re模块详解
2014/06/25 Python
Python实现在线程里运行scrapy的方法
2015/04/07 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
如何用Python合并lmdb文件
2018/07/02 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
零基础学python应该从哪里入手
2020/08/11 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
家具促销活动方案
2014/02/16 职场文书
班级文化标语
2014/06/23 职场文书
学校读书活动总结
2014/06/30 职场文书
六年级数学教学反思
2016/02/16 职场文书
详解Python requests模块
2021/06/21 Python