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标准库sched模块使用指南
Jul 06 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
Python中list查询及所需时间计算操作示例
Jun 21 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
python实现批量注册网站用户的示例
Feb 22 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 Python
python将unicode和str互相转化的实现
May 11 Python
详解Python IO口多路复用
Jun 17 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
通过代码实例了解Python3编程技巧
Oct 13 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 02 Python
Python进行区间取值案例讲解
Aug 02 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
建立文件交换功能的脚本(三)
2006/10/09 PHP
PHP 多维数组排序实现代码
2009/08/05 PHP
php获取图片信息的方法详解
2015/12/10 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
详解webpack进阶之loader篇
2017/08/23 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
django模板语法学习之include示例详解
2017/12/17 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
python实现祝福弹窗效果
2019/04/07 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
python实现简单的学生管理系统
2021/02/22 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
空指针到底是什么
2012/08/07 面试题
教师应聘自荐信范文
2014/03/14 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
公司停电通知
2015/04/15 职场文书
浅谈MySQL函数
2021/10/05 MySQL