本帖最后由 机灵小不懂丶 于 2026-1-7 14:24 编辑
最近沉迷于弄一些小玩意来辅助我玩梦幻西游
新开了组小号,经常忘记打坐导致没蓝,就写了个循环提醒的程序来提醒我
输入X秒,达到X秒以后就会有弹窗提醒,点击确定以后就会进入下一次循环,直至点击结束以后关闭
通过网盘分享的文件:循环提醒 v1.0.exe
链接: https://pan.baidu.com/s/1MyvMr29bvckEbfTG47Mr8g?pwd=52pj 提取码: 52pj
--来自百度网盘超级会员v9的分享
附上代码
[Asm] 纯文本查看 复制代码 import tkinter as tk
from tkinter import ttk, messagebox
import time
import threading
class ReminderApp:
def __init__(self, root):
self.root = root
self.root.title("循环时间提醒")
self.root.geometry("400x200")
# 变量
self.interval = tk.IntVar(value=180)
self.running = False
self.thread = None
# 创建界面
self.create_widgets()
def create_widgets(self):
# 间隔设置
interval_frame = ttk.Frame(self.root)
interval_frame.pack(pady=20)
ttk.Label(interval_frame, text="提醒间隔(秒):").pack(side=tk.LEFT, padx=5)
interval_entry = ttk.Entry(interval_frame, textvariable=self.interval, width=10)
interval_entry.pack(side=tk.LEFT, padx=5)
# 按钮
button_frame = ttk.Frame(self.root)
button_frame.pack(pady=10)
self.start_btn = ttk.Button(button_frame, text="开始提醒", command=self.start_reminder)
self.start_btn.pack(side=tk.LEFT, padx=5)
self.终止_btn = ttk.Button(button_frame, text="停止提醒", command=self.终止_reminder, state=tk.DISABLED)
self.终止_btn.pack(side=tk.LEFT, padx=5)
# 状态显示
self.status_label = ttk.Label(self.root, text="状态: 未运行")
self.status_label.pack(pady=10)
def start_reminder(self):
if not self.running:
try:
interval = self.interval.get()
if interval <= 0:
messagebox.showerror("错误", "请输入有效的正整数")
return
self.running = True
self.start_btn.config(state=tk.DISABLED)
self.终止_btn.config(state=tk.NORMAL)
self.status_label.config(text=f"状态: 运行中,间隔 {interval} 秒")
# 在新线程中运行提醒循环
self.thread = threading.Thread(target=self.reminder_loop, args=(interval,))
self.thread.daemon = True
self.thread.start()
except ValueError:
messagebox.showerror("错误", "请输入有效的数字")
def 终止_reminder(self):
if self.running:
self.running = False
self.start_btn.config(state=tk.NORMAL)
self.终止_btn.config(state=tk.DISABLED)
self.status_label.config(text="状态: 已停止")
def reminder_loop(self, interval):
while self.running:
time.sleep(interval)
if self.running:
# 在主线程中显示提醒
self.root.after(0, self.show_reminder)
def show_reminder(self):
if self.running:
# 创建置顶的提醒窗口
top = tk.Toplevel(self.root)
top.title("时间提醒")
top.geometry("300x150")
top.attributes("-topmost", True) # 设置窗口置顶
# 添加提醒内容
ttk.Label(top, text="时间到!", font=("Arial", 16)).pack(pady=20)
# 添加按钮
button_frame = ttk.Frame(top)
button_frame.pack(pady=10)
ttk.Button(button_frame, text="继续", command=top.destroy).pack(side=tk.LEFT, padx=5)
ttk.Button(button_frame, text="停止", command=lambda: (self.终止_reminder(), top.destroy())).pack(side=tk.LEFT, padx=5)
if __name__ == "__main__":
root = tk.Tk()
app = ReminderApp(root)
root.mainloop() |