开发者社区> 问答> 正文

Python Tkinter在另一个线程休眠后销毁窗口

我想破坏顶层窗口4秒后,但不睡觉的整个程序。当按钮被点击时,我运行def输入并创建一个顶部窗口。4秒后,该窗口将被销毁。我不能使用'after',因为它会阻止按钮部件再次运行。

# destroy window
def destroy(widget):
    sleep(4)
    widget.destroy()
    print 'destroy'

# top window
def entered():
    try:
        if tw1.winfo_exists():
            tw1.destroy()
    except:
        tw1 = Toplevel(broButton3)
        tw1.wm_overrideredirect(1)
        x = broButton3.winfo_rootx() + 0
        y = broButton3.winfo_rooty() - 25
        tw1.wm_geometry("+%d+%d" % (x,y))
        label = Label(tw1, text='Confirmed!', justify=LEFT, background="#34eb5b", relief=SOLID, borderwidth=1, font=("tahoma", "9", "normal"))
        label.pack(ipadx=1)
        Thread(target=(destroy(tw1))).start()

我也试过: 线程(目标=(λ:摧毁(tw1))) .start () 我得到输出'Destory'在打印,但窗口留在顶部。 问题来源StackOverflow 地址:/questions/59387000/python-tkinter-destroy-window-after-sleep-in-another-thread

展开
收起
kun坤 2019-12-25 21:45:12 933 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载