不论是日常的工作还是学习,现代年轻人在电脑屏幕时长数据能让人惊掉下巴,继而引发一系列身体不适的现象。小李也是久坐族中的一员,为了时刻提醒自己起来活动活动,我开发了一款基于PythonGUI编程的久坐提醒小助手。

整体设计

整体的构思类似于一个番茄时钟,提供一个倒计时功能并且在完成计时时发出警告。主要分为如下几个模块,一是时间选择模块,二是按钮模块,控制计时开始、暂停以及恢复,三是倒计时显示模块,并在倒计时完成之后发出警告。

模块一

这一块主要是组合框的设计,并传递所选择时间的具体数值,非常简单。

label2=tkinter.Label(self.win,text='请选择时间间隔:').place(x=40,y=20)

self.cv=tkinter.StringVar()

self.com=ttk.Combobox(self.win,textvariable=self.cv)

self.com.place(x=190,y=20)

self.com['value']=("15分钟","30分钟","45分钟","60分钟")

self.com.current(0)

self.com.bind("<>", self.get_time)

def get_time(self,event):

self.minute=int(self.com.get()[:-2])

模块二

这一块主要是三个按键功能的设计,是软件的核心部分。实现的功能与按钮的名称完全一致,当选择了定时的时间,按下开始按钮时,触发倒计时的秒表,并实时显示;按下暂停之后需要暂停倒计时的计数;按下继续之后需要继续倒计时的计数。

其中倒计时的计算,我是通过利用获取目标学习时长的数值加上当前时间计算得到最终计时完成的时间,本来是非常完美的,但是引入了暂停和继续开始这两项功能之后需要做出一定程度的改进,那就是倒计时的计算需要补充暂停的时长。

button=tkinter.Button(self.win,text="开始",command=self.alarm,width=6,height=1)

button.place(x=40,y=60)

button2=tkinter.Button(self.win,text="暂停",command=self.pause,width=6,height=1)

button2.place(x=180,y=60)

button3=tkinter.Button(self.win,text="继续",command=self.go_on,width=6,height=1)

button3.place(x=320,y=60)

def alarm(self):

self.now=datetime.datetime.now()

delta=datetime.timedelta(minutes=self.minute)

self.target=self.now+delta

self.win.after(0,self.update)

def pause(self):

self.pause_time=datetime.datetime.now()

self.flag=True

self.win.after_cancel()

def go_on(self):

self.go_on_now=datetime.datetime.now()

self.pause_long=self.go_on_now-self.pause_time+self.pause_long

self.flag=False

self.win.after(0,self.update)

模块三

把这个倒计时显示模块放置于最醒目的位置,并在完成当前计时时发出警告的消息。核心便是下面的update函数,实现倒计时的实时更新。

def update(self):

now=datetime.datetime.now()

countdown=self.target-now+self.pause_long

self.label=tkinter.Label(self.win,text=str(countdown)[:7],font=("黑体",70))

self.label.place(x=60,y=130)

if str(countdown)[:7]=='0:00:00':

tkinter.messagebox.showwarning(title="FBIWarning",message="您已工作{}分钟,请马上离开座位休息片刻!".format(self.minute))

self.flag=True

self.win.after_cancel()

if self.flag==False:

self.win.after(1,self.update)

最后,希望大家在工作学习之中,经常站起来活动活动筋骨,放松放松大脑,多呼吸新鲜的空气,毕竟身体才是革命的本钱!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python编程助手_用Python做一个久坐提醒小助手的示例代码相关推荐

  1. 物联网开发实战:手把手教你开发一款久坐提醒小助手

    大家好,我是机灵鹤. 最近研究开发了一个物联网 IoT 小项目--久坐提醒 / 喝水提醒小助手. 1. 项目介绍 本项目实现了一个久坐提醒和喝水提醒的小助手,在检测到连续工作较长时间之后,会打印纸条, ...

  2. python编程方式_自学python编程的方法路线

    怎么自学python编程 如何自学Python编程?一堆的Python教程却感觉无从下手呢?我想这应该是很多Python初学者正在纠结的问题. 今天想要分享给大家的是如何自学Python编程,学习这件 ...

  3. 小小的python编程故事_小小的 Python 编程故事

    现在Python的火热已经不是整个编程界的事情了,Python的火热已经蔓延到小学.大学课程,之前看新闻报道说青岛的小学生课程里都开始设置Python的课程了,大学里由原来必考的VB也改成了Pytho ...

  4. python 情书_用Python做一个520表白神器,值得收藏(示例代码)

    本文最后给出了打包好的软件,无需安装Python环境和各种依赖,直接下载软件,解压后,双击exe文件即可使用. 先来看一下具体的效果. 运行程序. 点击「选择图片」 选择JPG/JPGE/PNG三种中 ...

  5. python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆

    用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...

  6. python编程图文_深入Python多进程编程基础——图文版

    多进程编程知识是Python程序员进阶高级的必备知识点,我们平时习惯了使用multiprocessing库来操纵多进程,但是并不知道它的具体实现原理.下面我对多进程的常用知识点都简单列了一遍,使用原生 ...

  7. python编程比赛_用Python编程分析4W场球赛后,2018世界杯冠军竟是…

    比赛已经开始,我们不妨用 Python 来对参赛队伍的实力情况进行分析,并大胆的预测下本届世界杯的夺冠热门球队吧! 通过数据分析,可以发现很多有趣的结果,比如: 找出哪些队伍是首次进入世界杯的黑马队伍 ...

  8. 南开大学python编程基础_《Python编程基础》20春期末考核(参考答案)南开大学 答案...

    <Python编程基础>20春期末考核 -00001 试卷总分:100  得分:70 一.单选题 (共 15 道试题,共 30 分) 1.执行"print(0o20)" ...

  9. python编程中学生_中学生Python创意编程

    1.案例多样:本书案例丰富,知识点编排合理,难度适中,每个实例都有详细的分析和制作指导,降低了学习的难度,使读者对所学知识更加容易理解: 2.图文并茂:本书使用图片代替了大部分的文字说明,一目了然:具 ...

  10. python编程儿童_儿童python编程能给孩子带来哪些好处

    学习儿童python编程越来越受欢迎,原因有很多,对于孩子来说,Python是一种很好的编程语言,是一种功能强大,易于阅读的编程语言,读起来更像英文,孩子们很容易在没有经验的情况下学习Python. ...

最新文章

  1. LinearLayout 里面放入一个超宽的TextView
  2. 《腾讯传》读后感一——时势造英雄
  3. C++中正确使用PRId64
  4. java正则表达式 类_java正则表达式相关类的使用
  5. win7中安装vs2008的升级成正式版的方法
  6. Pytorch —— 损失函数(二)
  7. [翻译]The Data Access Application Block
  8. React.js入门基础一
  9. Android进阶篇-Http协议
  10. 嵩天python测验_考试 嵩天老师 :测验3: Python语法程序与设计(第3周)
  11. windows驱动开发4:WDM、WDF等驱动基本概念
  12. Android第四次作业
  13. 2015人生感悟哲理
  14. Linux系统如何隐藏一个文件?
  15. ElasticSearch快速入门
  16. [Python从零到壹] 五十八.图像增强及运算篇之图像锐化Sobel、Laplacian算子实现边缘检测
  17. 台式计算机怎样能搜无线连接,台式电脑怎么设置无线网络!台式电脑也能上wifi...
  18. redis常用命令getex_Redis常用命令整理
  19. zuk如将手机更新到Android10,ZUI新升级:ZUK宣布支持全机型升级Android N系统
  20. HDU 5387 乱搞

热门文章

  1. 前端下载zip出现文件打不开
  2. win10输入法看不见选字框_Win10更新后微软拼音输入法没有选字框怎么办?
  3. java scanner close_Java Scanner close()方法
  4. Google微软IBM能打败亚马逊AWS的理由很丰满,进展却骨感
  5. liunx开发板使用交叉网线连接电脑,通过电脑连接外网的方法
  6. 百度BAE上能装什么pHp框架,百度Bae云平台安装dedecms图文教程
  7. APS自动排产 — 排产结果拉动物料需求计划
  8. java 调度池_定时任务调度池 - 南郭先生Official的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 自动批量多渠道打包(腾讯VasDolly、美团walle),分渠道更新
  10. 链家网爬取深圳租房信息并存入MySQL