欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python实现定时弹窗提醒 博客分类: Python Python定时提醒 

程序员文章站 2024-03-25 22:15:34
...

        经常用电脑,一坐就是几个小时,总是忘记时间,所以觉得是不是找个定时提醒软件。网上找了还真有还很多,找了一个卫士什么的,装了。到时间以后自动锁屏倒计时。功能不错但是感觉功能太多。不知道大家现在用软件的时候有没有这种感觉,本来就是想要一种很简单的功能,但最惨的是装了一大堆软件,功能一大票但是没有自己用的。

       其实自己想的就是到时间以后弹窗提示休息就可以了。后来想想还是自己做一个吧。当然首选Python语言。

       首先需要一个定时弹窗具体的代码如下:

       程序使用自带的 Tkinter 不需要安装其他的包

       程序的主要功能:1、启动以后自动计时 2、计时完成后弹出窗口进行提示 (默认时间为30分钟)3、点击确定后重新进行计时

       程序的有一些问题:1、界面简单不精致(不过个人认为先达到功能 )2、休眠时不能够自动停止计时

 

# -*- coding: utf-8 -*-
import time, sys
# 判断python的版本然后import对应的模块
if sys.version < '3':
	from Tkinter import *
else:
	from tkinter import *

mydelaymin = 30 #窗口提示的延迟时间,以分钟计

#------------------def-------------------
def showMessage():
	#show reminder message window
	root = Tk()  #建立根窗口
	#root.minsize(500, 200)   #定义窗口的大小
	#root.maxsize(1000, 400)  #不过定义窗口这个功能我没有使用
	root.withdraw()  #hide window
	#获取屏幕的宽度和高度,并且在高度上考虑到底部的任务栏,为了是弹出的窗口在屏幕中间
	screenwidth = root.winfo_screenwidth()
	screenheight = root.winfo_screenheight() - 100 
	root.resizable(False,False)
	#添加组件
	root.title("Warning!!")
	frame = Frame(root, relief=RIDGE, borderwidth=3)
	frame.pack(fill=BOTH, expand=1) #pack() 放置组件若没有则组件不会显示
	#窗口显示的文字、并设置字体、字号
	label = Label(frame, text="You have been working 30 minutes! Please have a break!!", \
		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() #now the window size was calculated
	root.withdraw() #hide the window again 防止窗口出现被拖动的感觉 具体原理未知?
	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.mainloop()

#showMessage()


while True:
	time.sleep(mydelaymin*60) #参数为秒
	showMessage()

 

 程序主要参考网络,主要参考的博客如下:

http://www.lijiejie.com/tkinter-center-root-window/

http://www.jbxue.com/article/6730.html

http://www.sharejs.com/codes/python/8165

http://www.cnblogs.com/leaf1117/p/3419640.html

 

    如果在win下面,可能需要考虑如何自动运行。

    我使用的是批处理文件。具体如下:

    文件名为:rest_python.bat

    内容简单,就一行(如果有多个python版本注意修改):

python E:\rest.py 

 

    同时需要一个后台运行这个批处理文件的文件。有点麻烦,如果有更简便的方法欢迎分享。

    文件名字为:silent_bat.vbe

    内容如下:

   

set ws=wscript.createobject("wscript.shell")
ws.run"E:\rest_python.bat /start", 0

 

    然后把 silent_bat.vbe 文件拖入启动文件夹即可。(用快捷方式也可以)

 

    注意的几点:程序使用python2.7  系统 win7。

                        批处理文件需要根据你的文件存储位置进行更改。

                        记得加入启动文件夹。