我妈总忘生日。不是故意的,就是记不住。我想给她做个东西,放在桌面上,不碍事,到点就提醒。

用Python写了个小动画宠物。然后停不下来。

打开网易新闻 查看精彩图片

现在它长这样:一个全动画的桌面伴侣,永远浮在所有窗口上面,缩在系统托盘里,还能用自然语言聊天。你可以直接说"birthday Tanya May 28",它自动算年龄,问你怎么提醒,完事。说"move meeting to June 1",它找到事件,改掉。说"delete birthday Ani",模糊搜索,打错字也能找着。

技术栈很朴素:Python加PyQt5,JSON存本地,没云没账号,PyInstaller打包成exe,所有东西跑在%APPDATA%里。

但搭建过程踩了不少坑。QCalendarWidget的主题是噩梦——周围都能改,一碰内部表格就视觉崩坏。最后妥协:日历保持浅色,其他部分随便折腾。自然语言解析不用机器学习更是 humbled。边界情况太多。"в час дня"(俄语"下午一点")要识别成13:00而不是01:00。"meeting with doctor"不能因为俚语词典里有"today"就被拆成"meeting today doctor"。

结果:我妈桌面上现在真有个宠物。能用。她喜欢。

项目开源,GitHub搜pet-reminder,Windows专用,免费。想要个能记住事的桌面小动画朋友,可以试试。