基于Tkinter制作定时器,提醒做某事

基于Tkinter制作定时器

作者:AOAIYI

作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页

😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍

📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪



一、前言

对于喜欢用电脑的人来说,

一旦往那里一坐,就很容易忘记时间,

接触到Python的我们,当然是要自己DIY一个闹钟啦,而且一定要醒目!

这个时候我就想到了tkinter

二、需要的模块

  • tkinter
  • datatime
  • time

三、tkinter最简单的使用

import tkinter

root = tkinter.Tk()

root.mainloop()

导入tkinter,实例化一个Tk类,进入主循环,完成,一个窗口就创建好了,

像下面这样:
在这里插入图片描述

四、无边框tkinter窗口的创建

root.overrideredirect(True)

把窗口的边框给去掉,用上面这个函数,参数设置为True就可以了

root.geometry("{0}x{1}+0+0".format(
    root.winfo_screenwidth(),
    root.winfo_screenheight()))

把窗口的长宽设置为屏幕的长宽,这样就能铺满整个屏幕,醒目!

这里用来设定字体,字体本身为黑色,字体背景为白色:

tkinter.Label(root, text=word_text, fg='black', bg='white',
              # 字体是微软雅黑, 大小是100
              font=('Microsoft YaHei', 100)
              # 把label这个控件居中
             ).place(anchor='center',
                     relx=0.5,
                     rely=0.5)

label控件一般是用来显示文字的,把label居中,

字体设置为微软雅黑,大小是100,字体颜色是黑色,label控件的颜色为白色

五、时间的获取

import datetime

def get_time():
    hour = datetime.datetime.now().hour
    minute = datetime.datetime.now().minute    
    return hour, minute

闹钟就是在固定的时间提醒你,

所以要获取现在的时间,和我们设定的时间进行对比,

到了时间,弹出窗口,达到提醒的效果

HOUR = 20  # 几点
MINUTE = 38  # 几分

MESSAGE = "是时候睡觉了!"
  • HOUR——多少点提醒
  • MINUTE——多少分钟提醒
  • MESSAGE——提醒时出现的字幕

六、完整代码

import datetime
import time
import tkinter

HOUR = 20  # 几点
MINUTE = 38  # 几分

MESSAGE = "是时候睡觉了!"

TIMES = 5  # 提醒多少次
INTERVAL = 2  # 每次弹窗窗口间隔的秒数

class Reminder(object):
    def __init__(self, word_text):
        # 初始化
        self.root = tkinter.Tk()

        # 把窗口的边框给去掉
        self.root.overrideredirect(True)

        # 设置窗口的大小
        self.root.geometry("{0}x{1}+0+0".format(
            self.root.winfo_screenwidth(),
            self.root.winfo_screenheight()))

        # 设置整个窗口的背景为白色
        self.root.configure(bg='white')

        # 这里用来设定字体,字体本身为黑色,字体背景为白色
        tkinter.Label(self.root, text=word_text, fg='black', bg='white',

                      # 字体是微软雅黑, 大小是100
                      font=('Microsoft YaHei', 100)

                      # label这个控件居中
                      ).place(anchor='center',
                              relx=0.5,
                              rely=0.5)

        # 在窗口创建之后执行 self.show 这个函数
        # 这里这样处理,才能达到后面窗口显示2秒再消失的效果
        self.root.after_idle(self.show)

    def hide(self):
        """
        隐藏窗口并退出
        """
        self.root.withdraw()
        self.root.quit()

    def show(self):
        """
        显示窗口,持续2秒钟
        """
        self.root.deiconify()
        self.root.after(1000 * 2, self.hide)

    def start(self):
        """
        进入死循环,这样窗口才能一直存在
        """
        self.root.mainloop()


def get_time():
    hour = datetime.datetime.now().hour
    minute = datetime.datetime.now().minute    
    return hour, minute


def prompt():
    """
    弹出窗口
    """
    root = Reminder(MESSAGE)
    root.start()

    time.sleep(INTERVAL)


def main():
    # 这里的while循环是为了保证时间没到,脚本不会退出
    while True:

        hour, minute = get_time()

        # 判断小时数和分钟数
        if hour == HOUR and minute >= MINUTE:

            # 一般这里都是一个字母i,
            # 我这里纯粹就想循环五次
            # Python里面就可以用 _ 来替代
            for _ in range(TIMES):
                prompt()
            break

if __name__ == '__main__':
    main()

七、演示效果

定时器


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i阿极

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值