需求分析
- 可设置提醒时刻,精确到秒
- 到点应当弹窗
- 弹窗提示可指定
方案分析
- tkinter:已测试不采用,有母窗口,定时触发的实现非常别扭
- pyqt:不采用,包太大
- pywin32+schedule:已测试不采用,schedule仍然不太直观,传参也麻烦
- pywin32+time:采用该方案
代码实现
import win32api,win32con
import time
# 弹窗函数
def job(msg):
win32api.MessageBox(0,msg,'Misson',win32con.MB_OK+win32con.MB_ICONINFORMATION)
# 判定时刻函数
def clock(now,time_in,msg):
if now == time_in:
job(msg)
while True:
now = time.strftime('%H:%M:%S',time.localtime())
clock(now,'09:00:00','1.喝水\n2.吃药')
clock(now,'10:00:00','1.喝水\n2.叶黄素')
clock(now,'11:00:00','1.喝水')
clock(now,'14:00:00','1.喝水\n吃药')
clock(now,'15:00:00','1.喝水\n2.叶黄素')
clock(now,'16:00:00','1.喝水')
print(now)
time.sleep(1)
总结&思考
- 满足预期
- 可在该基础功能上扩展数据库,提高可用性
- 可利用多线程防止阻塞