```python
import tkinter as tk
import time
class App:
def __init__(self):
self.root =
tk.Tk()
# Get monitor size
ws = self.root.winfo_screenwidth()
hs = self.root.winfo_screenheight()
# Set window size
self.root.geometry("%dx%d" % (ws, hs))
self.root.title("半透明蒙版倒计时")
self.label = tk.Label(text="", font=("Arial", 256), fg="green")
self.label.pack(expand=True)
self.countdown = 60
self.interval = 40 * 60 # 40 分钟的时间间隔
self.transparent = self.root.winfo_toplevel() # 获取顶层窗口
self.transparent.attributes("-alpha", 0.7) # 设置半透明效果
self.transparent.withdraw() # 隐藏半透明窗口
self.root.after(0, self.loop)
def loop(self):
self.interval -= 1
if self.interval == 0:
self.interval = 60 # 重新开始计时
self.show_transparent()
elif self.interval == 10: # 倒计时 10 秒
self.label.config(fg="red")
elif self.interval < 10: # 倒计时 10 秒以内
self.label.config(fg="red")
if self.countdown >= 0:
self.label.config(text=str(self.countdown))
self.countdown -= 1
self.root.after(1000, self.loop) # 每隔 1 秒更新倒计时
else:
self.hide_transparent()
self.countdown = 60
self.root.after(0, self.loop)
def show_transparent(self):
self.transparent.deiconify() # 显示半透明窗口
self.transparent.attributes("-topmost", True) # 置顶窗口
def hide_transparent(self):
self.transparent.withdraw() # 隐藏半透明窗口
if __name__ == "__main__":
app = App()
app.root.mainloop()
```