首页 > 解决方案 > 在 Tkinter 中是否有线程的替代方法?或者有没有办法在没有线程的情况下运行后台计时器?

问题描述

我是新手,Tkinter我的理解是我们不能使用threadingwith Tkinter。所以我想知道是否有替代方法threading,或者是否有一种简单的方法来运行后台计时器?
基本上我想root在一段时间后用不同的元素替换我的元素,而不停止程序的执行。
这是我在意识到这threading不是一个选项之前尝试过的Tkinter

def checkGridElements():
    time.sleep(5)
    label1.grid_forget()
    label2.grid(row=0,column=0,sticky=E,padx=5,pady=5);passEntry.grid(row=0,column=1,sticky=W,padx=5,pady=5)
    return

t = threading.Thread(target=checkGridElements)
t.start()

标签: pythonmultithreadingtkinterpython-multithreading

解决方案


根(所有小部件)有一个 after 方法,该方法允许在指定时间后调用函数,暂停 tk 循环。如果您尝试使用线程,您可以尝试 tkthread ( https://pypi.org/project/tkthread/ )。问题是 python 和 tcl/tk 有不同的线程系统。tkthread 应该可以弥补这一点。


推荐阅读