目录
  • 一、小科普
    • 1)time模块
    • 2)messagebox模块
  • 二、准备中
    • 1)环境安装
    • 2)素材(音乐+背景可修改)
  • 三、开始敲代码
    • 1)导入模块
    • 2)界面设置
    • 3)获取当前实时时间
    • 4)设置开始、退出按钮
    • 5)设置到点播放音乐
    • 6)额外设置的一个弹窗提醒
  • 四、效果展示
    • 总结

      导语 

      相信有不少人的闹钟是设成这样的:

      6:20

      6:30

      6:35

      6:37

      ……

      起床真是令人困扰的事情,有的人根本不用定闹钟,但有的人提前半个小时闹钟都叫不醒,你的闹钟怎么定的?

      举个粒子:

      现在这天气真的就很需要闹钟,每天8点不然真的醒不来

      两个闹钟都喊不起,最少需要三个闹钟。需要,而且每5分钟一个。

      我是起床困难户{需要5-6个闹钟},但我能克服熬夜早点睡的时候,第二天只需要二、三个闹钟就能起来了。

      我的闹钟都是每天晚上亲自检查好然后设置的,因为担心漏掉了,怕早上迟到。

      需要三个闹钟,2个隔比较近,1个隔10分钟响,让自己觉得赖床已经好久,更开心的起床……

      哈哈哈——今天的话就教教大家来制作一款小闹钟小程序~卡卡通通的外表才适合我嘛!

      这款可爱的小闹钟是基于tkinter做的界面哈——有界面更好看滴!

      做的界面也是卡通的动漫的形象啦,当然也是可以随意修改很多界面背景、参数的哈。

      一、小科普

      1)time 模块

      在python中包含了若干个能够处理时间的库,而time库是最基本的一个,是python中处理时间的标准库。time库能够表达计算机时间,提供获取系统时间并格式化输出的方法,提供系统级精确计时功能(可以用于程序性能分析)。

      time库包含三类函数,以下介绍常用的函数:

      • 时间获取:time()、ctime()、gmtime()   
      • 时间格式化:strftime()、strptime()   
      • 程序计时:sleep()、perf_counter()

      2)messagebox模块

      messagebox可用在消息提示框、警告框、询问框、错误、关于等会话框,messagebox可以很方便实现相关对话框的弹出。

      二、准备中

      1)环境安装

      该项目运行环境:python3、pycharm、pygame、tkinter、time模块等一些自带的不一一介绍了哈。库的安装统一使用:

      pip install +模块名 或带豆瓣镜像源 pip install -i https://pypi.douban.com/simple/ +模块名

      2)素材(音乐+背景可修改)

      三、开始敲代码

      1)导入模块

      from os import environ
      environ['pygame_hide_support_prompt'] = '1'
      import pygame
      import time  # 导入此模块,获取当前时间
      from tkinter import *
      from tkinter import messagebox #弹窗
      import threading
      

      2)界面设置

      标题,界面的大小宽度,文字等等都设置好了哈。

      def sleeptime(hour, min, sec):
          return hour * 3600 + min * 60 + sec
      def gui_time():
          window = tk()
          window.title('来自一位小可爱')
          window.geometry('505x430+300+100')
          canvas = canvas(window, height=500, width=500)
          image_file = photoimage(file='01.gif')
          image = canvas.create_image(0, 0, anchor='nw', image=image_file)
          canvas.pack(side='top')
          label(window, text='添加闹钟: ').place(x=130, y=200)
          label(window,text = "帅的人已经醒了,丑的人还在睡觉",fg = 'red').place(x = 140,y = 80)
          var_usr_name = stringvar()
          var_usr_name.set('24:59')
          entry_usr_name = entry(window, textvariable=var_usr_name, background='pink')
          entry_usr_name.place(x=250, y=200)
      

      3)获取当前实时时间

      def gg1():
              index = 0
              try:
                  my_hour,my_minute = start()
              except:
                  messagebox.showwarning("提醒","请注意:是否为中文输入法的:")
                  index = 1
              if(index == 0):
                  window_sign_up = toplevel(window)
                  window_sign_up.attributes("-toolwindow", 1)
                  window_sign_up.wm_attributes("-topmost", 1)
                  window_sign_up.geometry('200x100+400+150')
                  label(window_sign_up, text='当前时间为: ').place(x=0, y=10)
                  window_sign_up.title('顾木子吖')
                  b1 = button(window_sign_up, text=' 退出 ', command=window.quit,fg = 'red')
                  b1.place(x=50, y=50)
                  str = stringvar()
                  l = label(window_sign_up, textvariable=str,fg = 'red').place(x=80, y=10)
                  cw = 1
                  while cw == 1:
                      t = time.localtime()  # 当前时间的纪元值
                      fmt = "%h %m"
                      times = "%h : %m : %s"
                      now = time.strftime(fmt, t)  # 将纪元值转化为包含时、分的字符串
                      times = time.strftime(times, t)   #显示的时间
                      now = now.split(' ')
                      hour = now[0]
                      minute = now[1]
                      str.set(times)
                      if (hour == my_hour and minute == my_minute):
                          str.set("时间到了")
                          play_music()
                      time.sleep(0.95)
       
          def start():
              timea = var_usr_name.get()
              my_hourtotal = timea.split(":")  # 时间
              my_hour = my_hourtotal[0]  # 小时
              my_minute = my_hourtotal[1]  # 分钟
              return my_hour,my_minute
          def ff1():
              try:
                  ff()
              except:
                  messagebox.showwarning("请注意:是否为中文输入法的:")
          def ff():
              thread = threading.thread(target=gg1)
              thread.daemon = true
              thread.start()
      

      4)设置开始、退出按钮

        btn_sign_up = button(window, text=' 开始 ', command=lambda: ff())
          btn_sign_up.place(x=130, y=300)
          b1 = button(window, text=' 退出 ', command=window.quit)
       
          b1.place(x=250, y=300)
          b2 = button(window,text = " ? ",command = problem_mail)
          b2.place(x=420,y=390)
          window.mainloop()
      

      5)设置到点播放音乐

      def play_music():
          #str.set("时间到了")
          filepath = r"良人乐团 - 春节的鞭炮.mp3";
          pygame.mixer.init()
          # 加载音乐
          pygame.mixer.music.load(filepath)
          pygame.mixer.music.play(start=0.0)
          # 播放时长,没有此设置,音乐不会播放,会一次性加载完
          time.sleep(290)
          pygame.mixer.music.stop()
      

      6)额外设置的一个弹窗提醒

      def problem_mail():
          messagebox.showinfo("看文末")
      

      四、效果展示

      随机展示part1

      “帅的人已经起来了,丑的人还在睡觉”

      随机展示part2

      “就算全世界把你遗忘,闹钟都会记得你”

      总结

      这不?这个闹钟界面又可爱颜值又高,没有人会拒绝的叭,以后要抢购啥的还可以多设置几个闹钟

      准时起来抢东西了哈。

      到此这篇关于利用python编写一个闹钟,治好你的拖延症的文章就介绍到这了,更多相关python闹钟内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!