一直非常馋 MAC 的 just focus 自己写了一简陋的脚本实现
import time import tkinter as tk from tkinter import ttk import threading import sys global 循环次数, 专注时间, 休息时间, 剩余时间, 窗口, 文本 窗口=tk.Tk() 窗口.attributes("-alpha", 0.5) 窗口.overrideredirect(True) # 隐藏窗口的标题栏和按钮 窗口.protocol("WM_DELETE_WINDOW", lambda: None) 窗口.geometry("1x1+0+0") 文本 = ttk.Label(窗口, text="休息时间到了!", background="#333333", foreground="#DDDDDD", font=("Helvetica", 16)) 文本.pack(pady=20) def 开始专注(): global 剩余时间 剩余时间 = -1 关闭按钮 = ttk.Button(窗口, text="开始专注", command=开始专注) 关闭按钮.pack(pady=20) def 输出倒计时(秒): print(f"还剩 {int(秒/60)} 分 {秒%60} 秒", end='') print('\r', end='') # 清除本行内容 def 窗口切换为专注(): global 循环次数 循环次数 -= 1 print(f"专注时间到了!{循环次数} {专注时间} {休息时间}") if 循环次数 < 0: 窗口.destroy() sys.exit(0) 窗口.overrideredirect(True) # 隐藏窗口的标题栏和按钮 窗口.title("专注时间") 窗口.attributes("-fullscreen", False) 窗口.attributes("-alpha", 0.5) 窗口.geometry("1x1+0+0") 窗口.wm_attributes("-topmost", 0) 剩余专注时间 = 专注时间 * 60 def 更新时间(): nonlocal 剩余专注时间 while 剩余专注时间 > 0: 输出倒计时(剩余专注时间) time.sleep(1) 剩余专注时间 -= 1 窗口切换为休息() timer_thread = threading.Thread(target=更新时间) timer_thread.start() def 窗口切换为休息(): global 剩余时间 剩余时间 = 休息时间 * 60 窗口.overrideredirect(False) 窗口.attributes("-alpha", 0.7) 窗口.title("休息时间") 窗口.configure(bg="#333333") 窗口.attributes("-fullscreen", True) 窗口.wm_attributes("-topmost", 1) def 更新时间(): global 剩余时间 while 剩余时间 > 0: 文本.config(text=f"还剩{循环次数}次循环,休息时间还剩: {剩余时间} 秒") time.sleep(1) 剩余时间 -= 1 窗口切换为专注() timer_thread = threading.Thread(target=更新时间) timer_thread.start() if __name__ == '__main__': 循环次数 = int(input("请输入循环次数: ")) 专注时间 = int(input("请输入专注时间(分钟): ")) 休息时间 = int(input("请输入休息时间(分钟): ")) 窗口切换为专注() 窗口.mainloop() # 循环次数 = 3 # 专注时间 = 1 # 休息时间 = 1 # 展示休息窗口() # python 番茄钟0.3.0.py # pyinstaller --onefile 番茄钟.py
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于