python实现倒计时小工具

系统 1647 0

本文实例为大家分享了python实现倒计时小工具的具体代码,供大家参考,具体内容如下

            
#!/usr/bin/env python
# coding=utf-8
 
import threading
import time
import Queue
from Tkinter import *
import tkMessageBox
import logging
logging.basicConfig(level=logging.INFO)
 
## Communication queue
commQueue = Queue.Queue()
g_time = 0
 
## Function run in thread
def timeThread():
 global g_time
 g_time = timeVar.get() * 60
 while 1:
  logging.info("线程放入队列:%d".decode("utf-8") % g_time)
  commQueue.put(g_time)
  try:
   root.event_generate('<
            
              >', when='tail')
  except TclError:
   break
  time.sleep(1)
  g_time -= 1
  if g_time==-1:
   begin_btn["fg"] = "black"
   clockVar.set("开始计时")
   break
 
def timeChanged(event):
 x = commQueue.get()
 logging.info("获取队列:%d".decode("utf-8") % x)
 minits = x//60
 seconds = x%60
 s = "剩余时间 {:02}:{:02}".format(minits, seconds)
 begin_btn["fg"] = "blue"
 clockVar.set(s)
 if x==0:
   tkMessageBox.showinfo("提醒","时间已到")
 
 
def clock_func(*args):
 global g_time
 if threading.activeCount()>1:
  g_time = timeVar.get() * 60
 else:
  th=threading.Thread(target=timeThread)
  th.start()
 
## Create main window
root = Tk()
root.title("计时工具")
root.geometry("180x95-0-45")
root.resizable(width=FALSE,height=FALSE)
root.wm_attributes("-topmost",1)
frame = Frame(root)
frame.pack()
Label(frame,text="设定时间间隔").grid(row=1,column=2)
timeVar = IntVar()
clockVar = StringVar()
time_entry = Entry(frame, textvariable=timeVar, width=8)
time_entry["justify"] = "center"
time_entry.grid(row=2,column=2,sticky="W,E")
begin_btn = Button(frame,textvariable=clockVar,command=clock_func)
begin_btn.grid(row=3,column=2)
timeVar.set(8)
begin_btn["fg"] = "black"
clockVar.set("开始计时")
 
for child in frame.winfo_children():
 child.grid_configure(pady=3)
 
time_entry.focus()
root.bind('<
              
                >', timeChanged)
root.bind("
                
                  ",clock_func)
root.mainloop()
                
              
            
          

小编再为大家分享一段代码:Python窗口倒计时

            
# Countdown using Tkinter 
from tkinter import *
import time
import tkinter.messagebox
 
class App:
  def __init__(self,master):
    frame = Frame(master)
    frame.pack()
    self.entryWidget = Entry(frame)
    self.entryWidget["width"] = 15
    self.entryWidget.pack(side=LEFT)
    self.hi_there = Button(frame, text="开始", command=self.start)
    self.hi_there.pack(side=LEFT)
    self.button = Button(frame, text="退出", fg="red", command=frame.quit)
    self.button.pack(side=LEFT)
    
  def start(self):
    text = self.entryWidget.get().strip()
    if text != "":
      num = int(text)
      self.countDown(num)
    
  def countDown(self,seconds):
    lbl1.config(bg='yellow')
    lbl1.config(height=3, font=('times', 20, 'bold'))
    for k in range(seconds, 0, -1):
      if k == 30:
        print("\a")
      if k== 29:
        print("\a")
      if k== 28:
        print("\a")
      lbl1["text"] = k
      root.update()
      time.sleep(1)
    lbl1.config(bg='red')
    lbl1.config(fg='white')
    lbl1["text"] = "时间到!"
    tkMessageBox.showinfo("时间到!","时间到!")
 
  def GetSource():
    get_window = Tkinter.Toplevel(root)
    get_window.title('Source File?')
    Tkinter.Entry(get_window, width=30,
           textvariable=source).pack()
    Tkinter.Button(get_window, text="Change",
            command=lambda: update_specs()).pack()
 
root = Tk()
root.title("Countdown")
lbl1 = Label()
lbl1.pack(fill=BOTH, expand=1)
app = App(root)
root.mainloop()
          

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论