Python 主线程正在阻塞另一个线程

Python main thread is blocking another thread

我正在尝试制作一个计时器来提醒程序员喝咖啡休息时间,但我仍然找不到让主线程不阻塞计时器线程的方法。我不知道我的代码有什么问题。

我没有在此处粘贴代码,因为我的代码需要一些图标才能工作。

这是 GitHub 存储库:https://github.com/cycool29/CoffeeTime,代码位于 /src/coffeetime.py

任何建议将不胜感激,谢谢!

如果你不在这里发布代码,这里的人怎么能帮助你。告诉我们去 off-site 到 Github 似乎不是一个正确的提问方式。

解决方案

tkinter 有一个内置的通用方法来实现这一点。

w.after(delay_ms, 回调=None, *args)

Requests Tkinter to call function callback with arguments args after a delay of at least delay_ms milliseconds. There is no upper limit to how long it will actually take, but your callback won't be called sooner than you request, and it will be called only once.

例子

import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="")
label.pack()

def timer(n, c=0):
    if n == c:
        label.config(text="Done!")
        return

    label.config(text=n)
    label.after(1000, lambda: timer(n - 1, c))

timer(10)

root.mainloop()