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

news2024/10/7 0:27:44

基于Tkinter制作定时器


文章目录

  • 基于Tkinter制作定时器
  • 一、前言
  • 二、需要的模块
  • 三、tkinter最简单的使用
  • 四、无边框tkinter窗口的创建
  • 五、时间的获取
  • 六、完整代码
  • 七、演示效果


一、前言

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

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

接触到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()

七、演示效果

定时器


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/366136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安全相对论 | 45亿条快递数据疑似遭泄露,他们这样说……

近期,Telegram各大频道突然大面积转发某隐私查询机器人链接,网传消息称该机器人泄露了国内45亿条个人信息,疑似电商或快递物流行业数据。随着舆论的发酵,快递股出现闪崩,多家快递公司股价下降。事件发生后,…

双碳”目标下二氧化碳地质封存技术应用前景及模型构建实践方法

2022年七月七日,工业和信息化部、发展改革委、生态环境部关于印发工业领域碳达峰实施方案的通知落地。全国各省份积极响应,纷纷出台地方指导文件,标志着我国碳减排事业的全面铺开。二氧化碳地质封存技术作为实现我国“双碳”目标的重要一环&a…

解决线程不安全问题的方法

解决线程不安全问题: 一、原子性 synchronized关键字的特性(监视锁) 1、synchronized的互斥性 通过特殊手段,让count变成原子操作 举例:上厕所,人进入后上锁,用完了出来解锁,期…

编译原理【运行时环境】—什么是活动记录、 活动记录与汇编代码的关系

系列文章戳这里👇 什么是上下文无关文法、最左推导和最右推导如何判断二义文法及消除文法二义性何时需要消除左递归什么是句柄、什么是自上而下、自下而上分析什么是LL(1)、LR(0)、LR(1)文法、LR分析表LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系编译原理第三章习…

专利撰写 为什么要申请专利 申请专利对个人有什么利益关系 专利申请实例 如何申请专利 专利申请办理流程

专利撰写 专利是对发明者或创造者所创造的发明或设计提供一定期限的独占权的法律保护。撰写专利需要考虑到多方面的因素,包括发明或设计的技术性、可行性、独创性、保密性等等。以下是一些关于专利撰写的常见问题和注意事项:专利类型:专利包括…

记一次后端生成Zip文件通过浏览器下载后文件损坏,无法打开,不可预知的末端错误,下载后文件比源文件增大

记一次后端生成Zip文件问题前言问题出现排查一、流没有关好二、写入了空白字节三、没有flush定位环节一、生成二、通过SwaggerUI、PostMan进行下载三、结论解决方法前言 在项目上线前夕,临时添加了个数据导出的接口,需求是导出压缩包,选择了项…

SpringCloud - Feign远程调用

目录 Feign的远程调用 RestTemplate方式调用存在的问题 介绍与初步使用 Feign的自定义配置 Feign运行自定义配置来覆盖默认配置,可以修改的配置如下: 配置Feign日志有两种方式: Feign性能优化 Feign底层的客户端实现: 连…

MATLAB R2020a 与PreScan8.5.0 详细安装教程(图文版)

目录MATLAB安装PreScan安装每文一语MATLAB安装 MATLAB是一款数学软件,用于科学计算、数据分析和可视化等任务。以下是MATLAB的几个优势: 丰富的工具箱:MATLAB拥有多种工具箱,包括信号处理、图像处理、优化、控制系统等&#xff0…

深度学习论文: EdgeYOLO: An Edge-Real-Time Object Detector及其PyTorch实现

深度学习论文: EdgeYOLO: An Edge-Real-Time Object Detector及其PyTorch实现 EdgeYOLO: An Edge-Real-Time Object Detector PDF: https://arxiv.org/pdf/2302.07483.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: https://github.com/shangli…

SQL的四种连接-左外连接、右外连接、内连接、全连接

SQL的四种连接-左外连接、右外连接、内连接、全连接 内连接inner join…on… / join…on… 展现出来的是共同的数据 select m.Province,S.Name from member m inner join ShippingArea s on m.Provinces.ShippingAreaID; 相当于:select m.Province,S.Name from m…

Mybatis一对多查询 ,以及会遇到的各种问题解答

Mybatis一对多查询 ,以及会遇到的各种问题解答业务场景实体类,数据库方法1:连表查询,用ResultMap映射方法2:子查询进行映射业务场景 有时候前端需要表格里面嵌套表格的情况,用以展示更加详细的信息&#xf…

前端历史 --- 从HTML静态文件到前后端分离

前端历史 --- 从HTML静态文件到前后端分离1. 静态HTML2. 动态HTML --- 服务器端渲染CGI --- Common Gateway InterfaceservletASP, JSP, PHP服务器端渲染(SSR)3. 前后端分离 --- 客户端渲染JavaScriptAjax --- Asynchronous Javascript And Xml.客户端渲染1. 静态HTML 在上个世…

回溯问题(子集型回溯、组合型回溯、排列型回溯)【零神基础精讲】

来源0x3f:https://space.bilibili.com/206214 回溯分为【子集型回溯】【组合型回溯】【排列型回溯】 文章目录回溯基本概念[17. 电话号码的字母组合](https://leetcode.cn/problems/letter-combinations-of-a-phone-number/)子集型回溯(分割问题也可以看…

按键中断,红外、光电、火焰传感器中断控制LED等并打印信息

需求:按键中断,红外、光电、火焰传感器中断控制LED等并打印信息重写函数部分:void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin) {switch(GPIO_Pin){case GPIO_PIN_9:HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_10);if(HAL_GPIO_ReadPin(GPIO…

浅析高速服务区交互一体机设备管理系统的建设与方向

很多高速公路服务区均缺乏现代化的服务思维、理念和手段,信息系统功能薄弱,服务区的自助服务终端存在功能单一、人机交互体验差、设备维护管理成本高、联动效率低、运营难等问题,这不仅无法支撑服务区的精细化服务和智能化管理需求&#xff0…

【视频】海康摄像头、NVR网络协议简介

1、软硬件整体架构 2、涉及的网络协议 3、协议简介 3.1 海康私有协议 设备发现SADP:进行设备的发现、激活、修改网络参数、忘记密码等; SDK:4200、系统平台的接入前端设备,协议不对外开放,但对外提供接口库; ISAPI:Intelligent Security API(智能安全API),基于HTTP传输…

C/C++每日一练(20230223)

目录 1. 数据合并 2. 回文链表 3. 完美矩形 1. 数据合并 题目描述 将两个从小到大排列的一维数组 (维长分别为 m,n , 其中 m,n≤100) 仍按从小到大的排列顺序合并到一个新的一维数组中,输出新的数组. 输入描述 第 1 行一个正整数 m , 表示第一个要合并的一维…

【数据结构】AVL树

AVL树一、AVL树的概念二、AVL的接口2.1 插入2.2 旋转2.2.1 左单旋2.2.2 右单旋2.2.3 左右双旋2.2.4 右左双旋三、验证四、源码一、AVL树的概念 当我们用普通的搜索树插入数据的时候,如果插入的数据是有序的,那么就退化成了一个链表,搜索效率…

纵然是在产业互联网的时代业已来临的大背景下,人们对于它的认识依然是短浅的

纵然是在产业互联网的时代业已来临的大背景下,人们对于它的认识依然是短浅的。这样一种认识的最为直接的结果,便是我们看到了各式各样的产业互联网平台的出现。如果一定要找到这些互联网平台的特点的话,以产业端为出发点,无疑是它…

嵌入式:UCOS移植+简单创建任务

目录 一、UCOS操作系统 二、UCOS移植 1、文件介绍 2、UCOS || 源码分析 3、打开Software文件 三、UCOS任务创建 一、UCOS操作系统 C/OS 是 Micrium 公司出品的实时操作系统, C/OS 目前有两个版本: C/OS-II 和 C/OS-III。 C/OS 是一种基于优先级…