【问题标题】:For-loop to make a timer shown in a tkinter window, but it doesn't open a windowFor-loop 使计时器显示在 tkinter 窗口中,但它不打开窗口
【发布时间】:2019-01-04 19:16:29
【问题描述】:

我正在制作一个带有 for 循环的计时器并将其显示在 tkinter 窗口中,但是当我执行脚本时,没有弹出窗口。 很可能有一些我不知道的错误,这可能很简单,我没有看到它

我尝试在代码中移动 for 循环以解决问题,但这没有帮助。

import tkinter
import time
root = tkinter.Tk()
label_1 = tkinter.Label(root, text="Start")
label_1.pack()
for i in range(1, 3600):
    label_1["text"] = i
    time.sleep(1)
root.mainloop()

【问题讨论】:

    标签: python-3.x for-loop tkinter


    【解决方案1】:

    窗口将在 3600 秒后显示。不要等待 3600 秒才能看到它,只需将更改更改为 5 秒。问题是你在主线程中做label_1["test"] = i,和App一样。您需要在另一个线程中执行此类任务,否则此类循环(由于time.sleep)将阻塞应用程序

    import tkinter
    import time
    root = tkinter.Tk()
    label_1 = tkinter.Label(root, text="Start")
    label_1.pack()
    
    import threading
    
    def task():
        for i in range(1, 10):
            label_1["text"] = i
            time.sleep(1)
    
    thread = threading.Thread(target = task)
    thread.start()
    
    root.mainloop()
    

    看看这个post关于多线程

    如果这对你有用,请告诉我

    【讨论】:

    • 谢谢。有效。我将研究多线程主题。我不是专家,我从来没有听说过这个。
    猜你喜欢
    • 2012-06-30
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 2015-09-13
    相关资源
    最近更新 更多