颜色变化时间提醒

简介: 【9月更文挑战第11天】

image.png

要创建一个带有 UI 的定时提醒程序,可以使用 tkinter 库,它是 Python 的标准 GUI 库。下面是一个简单的示例程序,满足你的需求:

  • 每小时的25分和55分提醒。
  • 通过颜色变化来提醒。
  • 鼠标左键点击恢复正常。
  • 显示时钟的时间(时:分:秒)。
import tkinter as tk
from datetime import datetime
import time

class TimerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("定时提醒程序")

        self.label = tk.Label(root, text="", font=("Helvetica", 48), bg="white")
        self.label.pack(fill=tk.BOTH, expand=True)

        self.root.bind("<Button-1>", self.reset_color)
        self.update_time()

    def update_time(self):
        current_time = datetime.now().strftime("%H:%M:%S")
        self.label.config(text=current_time)

        # 检查是否需要提醒
        current_minute = datetime.now().minute
        if current_minute in [25, 55]:
            self.label.config(bg="red")
        else:
            self.label.config(bg="white")

        # 每秒更新一次
        self.root.after(1000, self.update_time)

    def reset_color(self, event):
        self.label.config(bg="white")

if __name__ == "__main__":
    root = tk.Tk()
    app = TimerApp(root)
    root.mainloop()

代码说明:

  1. 初始化 TimerApp

    • __init__ 方法初始化 UI 元素:创建一个标签来显示时间,设置初始背景色为白色。
    • self.root.bind("<Button-1>", self.reset_color) 绑定鼠标左键点击事件来恢复颜色。
    • self.update_time() 用于更新时间和处理提醒。
  2. update_time 方法

    • 获取当前时间并更新标签的文本。
    • 如果当前分钟是25或55,标签背景色变为红色,否则保持白色。
    • 使用 self.root.after(1000, self.update_time) 每秒钟调用一次 update_time 方法。
  3. reset_color 方法

    • 当检测到鼠标左键点击时,将背景色恢复为白色。

运行程序:

将上述代码保存为一个 Python 文件(例如 timer_app.py),然后在命令行中运行 python timer_app.py 即可启动程序。

此程序会每秒钟更新一次显示的时间,并在每小时的25分和55分将背景色变为红色来提醒用户。点击 UI 页面会将背景色恢复为白色,继续计时。

目录
相关文章
|
24天前
|
前端开发 JavaScript
淡入淡出效果的过渡时间和速度如何调整?
淡入淡出效果的过渡时间和速度如何调整?
94 58
|
3月前
|
前端开发 数据可视化 JavaScript
前端echarts加标记点及标记线和提示框
通过本文的介绍,希望您能够深入理解和掌握如何在ECharts中添加标记点、标记线和提示框,并在实际项目中灵活运用这些功能,提升数据可视化效果。
104 4
|
9月前
|
图形学
【unity实战】时间控制 昼夜交替 四季变化 天气变化效果
【unity实战】时间控制 昼夜交替 四季变化 天气变化效果
285 0
|
6月前
|
Python
颜色变化时间提醒
【9月更文挑战第10天】
65 9
|
6月前
|
存储 测试技术 定位技术
需要统计出轨迹点出入某个区域的信息,包括:驶入时间、驶出时间
Lindorm Ganos 通过内置的 `ST_TrajectoryProfile` 算子高效统计轨迹的出入信息,利用时空索引技术减少扫描量和内存使用,降低计算成本。它通过空间索引+过滤下推减少扫描量,聚合加速提升效率,并在聚合算子内部完成进出点判断和轨迹信息提取。然而,该算子受限于时间阈值设定,可能在轨迹点不均匀采集时产生误差。测试环境下,查询耗时在20秒内,具体表现取决于过滤后的数据量和空间范围复杂度。
46 0
|
10月前
左右可以滑动半年的超级日历,支持日历部分收起和自动重定向为北京时间
左右可以滑动半年的超级日历,支持日历部分收起和自动重定向为北京时间
69 0
|
JavaScript 前端开发
JavaScript时间戳获取及时间戳判断(同时设置不同的颜色。已开始的事件显示绿色,未开始的事件显示黑色,过去的事件显示灰色)
JavaScript时间戳获取及时间戳判断(同时设置不同的颜色。已开始的事件显示绿色,未开始的事件显示黑色,过去的事件显示灰色)
143 0
uniapp写一个随时间变化的预约日期列表
const today = new Date(); const dateArray = []; const dayOfWeekArray = []; const yearMonthDayArray = [];
110 0
把K线的时间增加15分钟
把K线的时间增加15分钟
157 0