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中is和id的用法
Apr 03 Python
bat和python批量重命名文件的实现代码
May 19 Python
遍历python字典几种方法总结(推荐)
Sep 11 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
对Python中range()函数和list的比较
Apr 19 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
May 24 Python
Python 获取中文字拼音首个字母的方法
Nov 28 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
Python中super().__init__()测试以及理解
Dec 06 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
PHP对象Object的概念 介绍
2012/06/14 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
jquery 模式对话框终极版实现代码
2009/09/28 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
js实现随机点名
2021/01/19 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
面试自我介绍演讲稿
2014/04/29 职场文书
中职招生先进个人材料
2014/08/31 职场文书
基层党员对照检查材料
2014/09/24 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
红色电影观后感
2015/06/18 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
JS setTimeout与setInterval的区别
2022/04/20 Javascript