使用Tkinter編寫一個簡單的提醒小程式
阿新 • • 發佈:2019-02-07
作為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.最後附上程式的執行截圖: