1. 程式人生 > >使用Tkinter編寫一個簡單的提醒小程式

使用Tkinter編寫一個簡單的提醒小程式

作為IT狗,經常在電腦前坐著總不大好,於是就想自己寫一個windows程式來提醒自己每隔一小時站起來休息一下,自然選中了python自帶的Tkinter,簡單就好,不需要多複雜的介面。

參考了這篇文章,連結:http://lovekaiyuan.iteye.com/blog/2208044

下面附上程式(reminder.py)。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import time
from Tkinter import *

delaymin=60
def show_reminder():
    root=Tk()
    root.withdraw()
    screenwidth=root.winfo_screenwidth()
    screenheight=root.winfo_screenheight()-100
    root.resizable(False,False)
    root.title("reminder")
    frame=Frame(root,relief=RIDGE,borderwidth=3)
    frame.pack(fill=BOTH,expand=1)
    label=Label(frame,text="啊歐,已經工作1小時了,站起來休息一下吧!",font="Monotype\ Corsiva -20 bold")
    label.pack(fill=BOTH,expand=1)
    button=Button(frame,text="OK",font="Cooper -25 bold", fg="red", command=root.destroy)
    button.pack(side=BOTTOM)
    root.update_idletasks()
    root.deiconify()
    root.withdraw()
    root.geometry('%sx%s+%s+%s' % (root.winfo_width() + 10, root.winfo_height() + 10,
        (screenwidth - root.winfo_width())/2, (screenheight - root.winfo_height())/2))    #視窗所在位置以及大小,前兩個字串代表視窗寬高,後兩個字串代表左上角座標
    root.deiconify()
    root.lift(aboveThis=None)
    root.mainloop()

while True:
    time.sleep(delaymin*60)
    show_reminder()

編寫完主程式後,我們需要把它編譯為exe程式,自然選中了名聲最大的py2exe,安裝方法自行百度,需要注意的是一定要安裝與自己python版本相同的版本。

安裝好後,我們來測試一下,在IDLE輸入

import py2exe
沒有報錯則代表安裝成功。

下面我們需要寫一個setup程式用來生成exe,名字就叫setup.py,程式碼如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from distutils.core import setup
import py2exe

py2exe_options={
	"dll_excludes":["MSVCP90.dll"],
	"bundle_files":1
}

setup(name='reminder',
	  version='1.0',
	  description='my reminder',
	  zipfile=None,
	  # options = {"py2exe":py2exe_options},
	  windows=[{"script":"reminder.py","icon_resources":[(0,"logo.ico")]}]
	 )

編寫好setup.py後,我們只需要開啟cmd命令列視窗,進入我們的setup.py程式所在目錄,執行下面一條語句即可。

python setup.py py2exe
這樣,就會在該目錄生成一個dist目錄,裡面已經生成了reminder.exe。

如果我們要釋出這個程式,那麼需要把dist目錄一起釋出,單單靠這個exe程式是不能執行的,因為它依賴著這個dist目錄中的很多檔案。

如果我們要讓這個程式每天開機啟動,那麼方法會有很多,這裡就不說了,自行百度。

對上面的程式做一點說明。

1.如果沒有

"dll_excludes":["MSVCP90.dll"],
這條語句,則有可能生成後執行時會報錯,類似“找不到MSVCP90.dll”之類,所以我們需要把這個dll排除。

2.

windows=[{"script":"reminder.py","icon_resources":[(0,"logo.ico")]}]

上面這條語句中的icon_resources指明瞭程式所用的圖示(注意該圖示是程式的圖示,不是執行時工作列顯示的圖示),logo.ico檔案應該存放在與setup.py、reminder.py同一級目錄下。注意這個ico檔案的生成,不能單純地把其他字尾改成ico就萬事大吉,而是需要使用轉換程式生成,這裡給出一個線上的非常方便的生成方法,請訪問:http://www.converticon.com/。另外,為什麼需要使用ico字尾呢?我試過使用png圖片,結果直接使python.exe崩潰了。

3.第二點提到,該圖示是程式的圖示,不是執行時工作列顯示的圖示,那問題來了,執行時工作列的圖示應該怎樣改呢?預設的圖示是非常醜的紅紅的“Tk”兩個字母,我嘗試換過,stackoverflow上查了半天,使用了網上的各種方法都沒成功,最後放棄了,如果哪位讀者成功過,希望給我留言,這裡不勝感激。

4.自己編寫的exe程式,殺軟肯定不認,請自行查毒。

5.最後附上程式的執行截圖: