我的编程空间,编程开发者的网络收藏夹
学习永远不晚

利用Python编写一个闹钟,治好你的拖延症

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

利用Python编写一个闹钟,治好你的拖延症

导语 

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

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闹钟内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

利用Python编写一个闹钟,治好你的拖延症

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录