一直非常馋 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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于