You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的Tkinter实现约每50秒弹出提示消息?

解决Tkinter定时重复弹窗的问题

你的代码存在几个关键问题:

  • root.mainloop()会持续阻塞程序执行,后续的time.sleep(50)永远无法运行
  • 用while True搭配time.sleep会破坏Tkinter的事件循环机制,导致程序卡死
  • 每次调用virus()都新建Tk()实例,属于不必要的资源浪费

正确的做法是使用Tkinter内置的after()方法实现定时任务,它不会阻塞事件循环,是Tkinter官方推荐的定时方案。修改后的代码如下:

from tkinter import Tk, messagebox

def show_error():
    # 弹出提示窗口
    messagebox.showinfo("error", "error")
    # 50000毫秒(50秒)后再次调用自身,实现循环弹窗
    root.after(50000, show_error)

if __name__ == "__main__":
    root = Tk()
    # 隐藏主窗口,只保留提示弹窗
    root.withdraw()
    # 首次触发弹窗
    show_error()
    # 启动Tkinter事件循环
    root.mainloop()

代码说明:

  • root.withdraw()用于隐藏默认的空白主窗口,避免多余界面干扰
  • after(50000, show_error)实现定时触发,每50秒调用一次弹窗函数
  • 整个逻辑基于Tkinter事件循环运行,不会出现阻塞或卡死问题

内容的提问来源于stack exchange,提问作者klamerusjc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:32:39