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使用Flask框架获取当前查询参数的方法
Mar 21 Python
详解Python中break语句的用法
May 14 Python
Python 3.6 读取并操作文件内容的实例
Apr 23 Python
Python使用gRPC传输协议教程
Oct 16 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
TensorFlow实现指数衰减学习率的方法
Feb 05 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
Python yield生成器和return对比代码实例
Apr 20 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
Python命名空间及作用域原理实例解析
Aug 12 Python
python 写一个性能测试工具(一)
Oct 24 Python
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
You might like
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
Python脚本暴力破解栅栏密码
2015/10/19 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
大学生自荐书范文
2013/12/10 职场文书
商场中秋节广播稿
2014/01/17 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
本科毕业生自荐信
2014/06/02 职场文书
幼儿园标语大全
2014/06/19 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS