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 help()函数用法详解
Mar 11 Python
python实现模拟按键,自动翻页看u17漫画
Mar 17 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
zookeeper python接口实例详解
Jan 18 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
python dlib人脸识别代码实例
Apr 04 Python
Django框架视图函数设计示例
Jul 29 Python
基于python实现把图片转换成素描
Nov 13 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
python文件与路径操作神器 pathlib
Apr 01 Python
使用scrapy实现增量式爬取方式
Jun 21 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python中p-value的实现方式
2019/12/16 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
办公室保洁员岗位职责
2013/12/02 职场文书
会计专业自荐信范文
2013/12/02 职场文书
车间工艺员岗位职责
2013/12/09 职场文书
办公室前台岗位职责
2014/01/04 职场文书
环保倡议书范文
2014/05/12 职场文书
电影圆明园观后感
2015/06/03 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技
德生2P3收音机开箱评测
2022/04/30 无线电