您的位置:首页 > 移动开发 > 微信开发

使用Tkinter编写一个简单的提醒小程序

2015-06-10 21:06 656 查看
作为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.最后附上程序的运行截图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: