【Python项目】Tkinter之做个小闹钟

帮同学给他写的闹钟加了一个GUI界面,写到后面,几乎是推倒重来,还是学到一些东西,after循环怎么关闭始终是一个难题,当时我想的是用一个while循环,但是while循环一直都会崩溃,我也不是很清楚其原理,我个人觉得可能是循环的太多了导致程序崩溃,如果有大佬知道怎么中断after,可以私聊我,我每天都会上来瞅瞅,注释还是继承以往白话式,希望对诸位能有所帮助

import time
import os
import tkinter
import tkinter.messagebox

window=tkinter.Tk()
window.title('闹钟')
window.geometry('400x200+400+300')

#提取当前的时间,每秒刷新两次
def getting():
    var.set(time.strftime("%Y-%m-%d %H:%M:%S"))     #对当前时间进行格式化
    window.after(500,getting)

#在主界面显示当前的时间
var=tkinter.StringVar()
lb=tkinter.Label(window,textvariable=var,font=('Arial',10),width=20)
lb.pack()

getting()

#标签文档
window_text=tkinter.Label(window,text='请输入需要提醒的时间',font=('Arail',10))
window_text.place(x=130,y=50)

window_symbol=tkinter.Label(window,text=':',font=('Arail',15))
window_symbol.place(x=190,y=80)

#取出输入的小时数
hour_var=tkinter.StringVar()
window_hour=tkinter.Entry(window,textvariable=hour_var,width=5,show=None)
window_hour.place(x=150,y=82)

#取出输入的分钟数
minute_var=tkinter.StringVar()
window_minute=tkinter.Entry(window,textvariable=minute_var,width=5,show=None)
window_minute.place(x=210,y=82)

#主要判断函数,文首说的问题就在此函数中
def estimate():
    hour=hour_var.get()
    minute=minute_var.get()
    if hour == '':
        tkinter.messagebox.showerror(title='子轩闹钟',message='小时不允许为空')        #报错弹窗
    elif minute == '':
        tkinter.messagebox.showerror(title='子轩闹钟',message='分钟数不允许为空')
    else:
        def estimate1():
            tkinter.messagebox.showinfo(title='子轩闹钟',message='已为您成功定时')     #通知弹窗
            window.after(1000,estimate1)
            if ((hour) == (time.strftime('%H'))) and ((minute) == (time.strftime("%M"))):   #这个判断是有点憨,见谅
                os.system('卡农.mp3')     #我最喜欢的钢琴曲
                window.destroy()        #实在是不知道怎么中断after,被逼无奈出此下策
        estimate1()

#给个按钮
window_button=tkinter.Button(window,text='定时',width=9,command=estimate)
window_button.place(x=160,y=120)

#主界面循环
window.mainloop()

程序到这里就结束了,写的也是非常的简陋,可能以后会完善吧,如果有大佬闲暇之余感兴趣完善了一下,希望能让我瞻仰瞻仰。

好了,散会

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值