1. 程式人生 > >一個倒計時的小工具

一個倒計時的小工具

#!/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('<<TimeChanged>>', 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>>', timeChanged)
root.bind("<Return>",clock_func)
root.mainloop()

相關推薦

用MFC製作一個倒計時程式

void CCdTimerDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default UpdateData(TRUE); BOOL bIsDecreased = FALSE;

基於百度通用翻譯API的一個翻譯工具

digest 函數 清除 之前 file ram json 添加 msi 前幾天寫了一個簡單的翻譯小工具,是基於有道翻譯的,不過那個翻譯接口有訪問限制,超過一定次數後會提示訪問過於頻繁,偶然發現百度翻譯API如果月翻譯字符少於200萬是不收取費用的,所以就註冊了一個百度開發

寫了一個CDN工具一個月省了買一雙AJ鞋的錢!

前些日子上閒逛,看到七牛雲出了 CDN 閒時資源包,簡單來說就是可以按照 5 折的價格購買半夜零點到上午九點這個時段的 CDN 流

訪問github太慢?我寫了一個開源工具一鍵變快

![file](https://img2020.cnblogs.com/other/268224/202008/268224-20200824105038072-1998470434.jpg) ## 前言 GitHub應該是廣大開發者最常去的站點,這裡面有大量的優秀專案,是廣大開發者尋找資源,交友學習的好地

一個倒計時工具

#!/usr/bin/env python # coding=utf-8 import threading import time import Queue from Tkinter import * import tkMessageBox import logging

工具】python 在服務器上臨時啟用一個端口

python socket 啟用端口在服務器還未部署應用,而這時候如果要驗證網絡是否開通,我們可以先在服務器上模擬啟用應用的端口,然後從其他地方telnet這個端口來驗證網絡的開通情況。這邊使用python腳本來臨時啟用一個端口,用於測試使用。腳本如下:import socket while True:

一個練習日語五十音圖的工具

value document 下一個 class font-face rip nload tran event <html> <head> <title>五十音練習</title> &

python的實戰:一個目錄一鍵啟動管理工具

app Coding put str top ini add nal 讀取 簡單的學習了幾天的python,總覺得最好根據自身的需求來做點小工具實戰一下。 上班的時候由於有很多目錄需要打開。每次都要一個個的找那些目錄。我覺得,我需要一個小工具。然後登記下,所有需要打開的目錄

看到一個詞語提取工具,分享給有標簽、詞庫需求的同學們

詞庫 搜索 新詞發現 標簽 自然語言處理 關於詞語小工具的描述快戳下面鏈接~~~ https://forum.huaweicloud.com/thread-8391-1-1.html 不想看文章,想立即試用小工具的,請戳下面~~~http://fe2e6fd859034d40a3269f7

Snapshot截圖軟件(一個幾百k又很好用的的截圖工具)

mar png 窗口 軟件 截屏 ffffff 編輯 tor 截圖 Snapshot截圖軟件(一個很小幾百k又很好用的的截圖工具)Snapshotor 是一款免費的截屏工具。軟件功能強大,支持截取窗口或一塊區域,也可以增加箭頭線,多邊形,文本等註釋。非常使用經常需要截圖並編

C語言結合VBS腳本編寫朗讀工具,做一個能夠發音的C語言程序

dos img 用法 reat int 發音 輸入 soft sof 大家好!我就是小編,又見面了啊,有句話說“相聚是緣”。我們既然有緣相聚在此,希望你對我有了一定的認識和了解,也能夠關註下小編,這樣就不會迷路哦,希望在往後的日子我們大家能繼續相互鼓勵,共同成長.在花季和

送給初學爬蟲者們的一個工具:如何用正則匹配headers?

把這種headers(Host: www.baidu.com)匹配成為下面這種:'Host': 'www.baidu.com 正則如下: headers ="Host:www.baidu.com" new=re.sub('(.*?):(.*)',lambda m:"\'"+m.group(1)+

json formatter 一個檢查json格式是否正確的工具

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

編寫一個檔案分割工具,能把一個大檔案分割成多個的檔案。並且能再次把它們合併起來得到完整的檔案。

package wenjianyuliu;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io

編寫一個檔案分割工具,能把一個大檔案分割成多個的檔案。並且能再次把他們合併起來得到完整的檔案

package wenjian; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java

一個線上排版工具:中文、英文、數字、符號中間加個空格

我一直相信這個世界是懶人創造的。 大家如果仔細看我的文章,會發現一個有趣的地方。就是數字、英文和中文之間會多一個空格,比如 1 是數字,1 兩邊有空格。如果你再仔細觀察,微信文字訊息的排版風格也是這樣,不信你試試。 這個排版的風格是師從 stormzhang,包括微信整個排版風格都跟他差不多,只是我比較喜歡在

一個奇鴿免費版- 船新體驗的工具軟體

從名字就不難看出,這是一款有著船新體驗,門檻低,需要安卓手機就能正常執行。但相對應的,功能也比同類應用要強大,也更新了多個版本「解封助手、高品質音樂」等工具的軟體。 一個奇鴿船新體驗 為小奇鴿作品,介面並稱不上好看,小奇鴿開發,圍繞著「玩機、QQ、生活、圖片

分享一個可以提高微信公眾號文章閱讀率的工具!公眾號運營者必備哦!

這個工具叫“閱讀紅包”。 “閱讀紅包”是個什麼東西? 閱讀紅包可以理解為文章的彩蛋。 也就是,當你的粉絲閱讀完了你群發的文章,在文章末尾驚喜的發現了一個“領取紅包”的連結,該粉絲點選連結,即可按設定的中獎概率獲得一個微信紅包。 有什麼用處? 1. 給自己的粉

一個按鈕會隨著滑鼠移動而變化的工具

非常簡單的小玩意,創意是跟網上學的,寫著練練筆 實現的功能就是: 兩個按鈕,滑鼠在兩個按鍵之間移動的時候,按鈕的內容也會發生變化。 用的是tkinter的包 程式碼如下 1 from tkinter import * 2 class Trick(): 3 def __init

一個按鈕會隨著鼠標移動而變化的工具

移動 pac 簡單 class col 就是 簡單的 init .config 非常簡單的小玩意,創意是跟網上學的,寫著練練筆 實現的功能就是: 兩個按鈕,鼠標在兩個按鍵之間移動的時候,按鈕的內容也會發生變化。 用的是tkinter的包 代碼如下 1 from tki