【发布时间】:2013-04-04 18:20:27
【问题描述】:
我想在调用withdraw 后显示一个窗口。
以下是我当前的代码:
from Tkinter import *
def callback():
global root
root.withdraw()
win2 = Tk()
root = Tk()
Label(root,text='this is a window').pack()
Button(root,text='withdraw',command=self.callback).pack()
mainloop()
只要我按下按钮,窗口就会随我的意愿消失,然后会出现另一个窗口,一切正常。如何让第一个窗口恢复到与之前相同的状态?
【问题讨论】:
-
一个重要的细节:回调函数不是子进程。它们与 Tkinter 代码在同一个线程上运行,如果耗时过长,GUI 就会冻结。如果它是子进程,则无法从该函数访问全局变量。
-
你永远不应该创建两个
Tk实例——Tkinter 根本就不是为那样工作而设计的。如果您需要多个窗口,请创建Toplevel的实例。
标签: python python-2.7 tkinter