• Python 入门学习(壹)上机时间提醒


    控制台版本

    思路

    Project 1 是一个时间提醒助手,从打开程序开始计时,每两个小时打开一个 Youtube 上的视频链接。我想也许能够做一个更完善的版本——以开机时间为原点,计算上机的时长,每两个小时弹出一个 MessageBox 提示休息。

    代码
    import time
    import os
    from datetime import datetime
    import psutil
    import sys
    from time import sleep
    import Tkinter as tk
    import tkMessageBox
     
    count = 0
    while 1:
    os.system('cls') #清屏实现动态显示
    bTime = datetime.fromtimestamp(psutil.boot_time()) #获取开机时间
    print "Boot Time:", #不换行输出
    print bTime
    cTime = datetime.now() #获取当前时间
    print "Current Time:",
    print cTime
    dTime = (cTime - bTime) #计算用机时长
    print "Running Seconds:",
    print dTime.seconds,
    print "s"
    time = int(dTime.seconds)
    if (time/7200 > count):
    tkMessageBox.showinfo(title = 'Notice', message = 'You Should Have a Rest') #弹出提示框
    count+=1
    sleep(1)
     
    if __name__=="__main__":
    main()
    
    效果

    GUI 版本

    思路

    既然都用上了 Tkinter,何不直接来一个 GUI 界面呢。不过如果是 Tkinter 的话,代码就需要完全重构了。

    代码
    #coding=utf-8
    import os
    from datetime import datetime
    import psutil
    import sys
    from time import sleep
    from Tkinter import *
    import tkMessageBox
    import time
     
    def tick():
    global time1
    # 获取当前系统时间
    time2 = time.strftime('%H:%M:%S')
    # 动态显示
    if time2 != time1:
    time1 = time2
    clock.config(text=time2)
    clock.after(200, tick)
     
    def timer():
    global dTime1
    bTime = datetime.fromtimestamp(psutil.boot_time())
    cTime = datetime.now()
    dTime2 = (cTime - bTime).seconds
    if dTime2 != dTime1:
    dTime1 = dTime2
    runn.config(text=str(dTime2)+' s')
    runn.after(800, timer)
     
    def msg():
    global count
    if (dTime1/7200 > count):
    tkMessageBox.showinfo(title = 'Notice', message = 'You Should Have a Rest Now')
    count+=1
    tips.config(text="累计提示次数:"+str(count))
    tips.after(800, msg)
     
    root = Tk()
     
    #标题栏
    root.title('Tik')
    #窗体尺寸
    #root.geometry('200x100')
     
    #时钟
    nclock = Label(root, text="当前时间", font=('DengXian', 15, 'bold'), relief=GROOVE)
    nclock.grid(row=0, column=0)
    time1 = ''
    clock = Label(root, font=('DengXian', 15, 'bold'))
    clock.grid(row=0, column=1)
    tick()
     
    #开机时间
    nboot = Label(root, text="开机时间", font=('DengXian', 15, 'bold'), relief=GROOVE)
    nboot.grid(row=1, column=0)
    boottime = datetime.fromtimestamp(psutil.boot_time())
    boottime = boottime.strftime('%H:%M:%S')
    boot = Label(root, text=boottime, font=('DengXian', 15, 'bold'))
    boot.grid(row=1, column=1)
     
    #运行时长
    nrun = Label(root, text="运行时长", font=('DengXian', 15, 'bold'), relief=GROOVE)
    nrun.grid(row=2, column=0)
    dTime1 = ''
    runn = Label(root, font=('DengXian', 15, 'bold'))
    runn.grid(row=2, column=1)
    timer()
     
    #运行状态
    status = Label(root, text=" [ Running ] ", fg = 'green', bg = 'black', font=('DengXian', 10, 'bold'))
    status.grid(row=10, column=0)
    count = 0
    tips = Label(root, fg = 'green', bg = 'black', font=('DengXian', 10, 'bold'))
    tips.grid(row=10, column=1)
    msg()
     
    root.mainloop()
    
    效果

  • 相关阅读:
    工厂方法
    简单工厂
    单例模式
    MVC中Cookies的简单读写操作
    windows服务开启(收藏url)
    WCF的三种模式
    SvcUtil.exe导入WCF
    简述wcf应用
    sql的几种常用锁简述
    Lucene.Net和盘古分词应用
  • 原文地址:https://www.cnblogs.com/RhinoC/p/python_1.html
Copyright © 2020-2023  润新知